Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

简单贪心....0ms水过

Posted by crazyX at 2016-03-11 20:51:56 on Problem 1017
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<cstring>
#define INT_MAX 1<<30
using namespace std;
typedef long long ll;
const int INF=0x7F;
int n;
int a[7];
bool bl=false;
int ans=0;
int main()
{
	while (1)
	{
		bl=false;
		ans=0;
		for (int i = 1; i <= 6; i += 1)
		{
			scanf("%d",&a[i]);
			if(a[i])bl=true;
		}
		if(!bl)break;
		ans+=a[6];
		
		ans+=a[5];
		if(a[1]<=11*a[5])a[1]=0;
		else a[1]-=11*a[5];
		
		ans+=a[4];
		if(a[2]<=5*a[4]){
			int left=20*a[4]-a[2]*4;
			if(a[1]<=left)a[1]=0;
			else a[1]-=left;
			a[2]=0;
		}
		else {
			int left=20*a[4]-5*a[4]*4;
			if(a[1]<=left)a[1]=0;
			else a[1]-=left;
			a[2]-=5*a[4];
		}
		
		ans+=a[3]/4;
		
		a[3]=a[3]%4;
		if(a[3]>0){
			ans+=1;
			if(a[2]<=7-a[3]*2){
				int left=36-a[3]*9-a[2]*4;
				if(a[1]<=left)a[1]=0;
				else a[1]-=left;
				a[2]=0; 
			}
			else {
				int left=36-a[3]*9-(7-a[3]*2)*4;
				if(a[1]<=left)a[1]=0;
				else a[1]-=left;
				a[2]=a[2]-(7-a[3]*2);
			}
			a[3]=0;
		}
		
		if(a[2]>0){
			ans+=a[2]/9;
			
			a[2]=a[2]%9;
			if(a[2]>0){
				ans+=1;
				int left=36-a[2]*4;
				if(a[1]<=left)a[1]=0;
				else {
					a[1]-=left;
				a[2]=0;
				}
			}
		}
		
		if(a[1]>0){
			ans+=a[1]/36;
			a[1]=a[1]%36;
			if(a[1]!=0)ans++;
		}
		printf("%d\n",ans);
	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator