View Code of Problem 88

#include<stdio.h>
#include <string.h>
#include <math.h>
void main()
{
int a[6],i,sum=0;
for(i=0;i<6;i++)
scanf("%d",&a[i]);
for(i=5;i>=0;i--)
{
	if(i==5&&a[i]!=0)//第六个物品的个数
		sum=a[i];
	if(i==4&&a[i]!=0)//第五个
	{
		sum+=a[i];
		if(a[i]*11>=a[0])
		{
			a[0]=0;
		}
		else
			a[0]=a[0]-a[i]*11;
}
	if(i==3&&a[i]!=0)
	{
		sum+=a[i];
			if(a[i]*5>=a[1])//4个放完放两个,剩余的放一个
			{
				if((a[i]*5-a[1])*4>a[0])
					a[0]=0;
				else
					a[0]=a[0]-(a[i]*5-a[1])*4;
				a[1]=0;
			}
			else
				a[1]=a[1]-a[i]*5;
	}
	if(i==2&&a[i]!=0)
	{
		if(a[i]%4==0)
			sum+=a[i]/4;
		else
			sum+=a[i]/4+1;
		if(a[i]%4==1)
		{
			if(a[1]<=5)
			{
			
				if(a[0]<=(7+(5-a[1])*4))
					a[0]=0;
				else
					a[0]=a[0]-(7+(5-a[1])*4);
					a[1]=0;
			}
			else
			{
				a[1]=a[1]-5;
				if(a[0]<=7)
					a[0]=0;
				else
					a[0]=a[0]-7;
			}
		}
		if(a[i]%4==2)
		{
			if(a[1]<=3)
			{
				if(a[0]<=(6+(3-a[1])*4))
					a[0]=0;
				else
					a[0]=a[0]-(6+(3-a[1])*4);
				a[1]=0;
			}
			else
			{
				a[1]=a[1]-3;
				if(a[0]<=6)
					a[0]=0;
				else
					a[0]=a[0]-6;
			}
 
		}
		if(a[i]%4==3)
		{
			if(a[1]<=1)
			{
				if(a[0]<=(5+(1-a[1])*4))
					a[0]=0;
				else
					a[0]=a[0]-(5+(1-a[1])*4);
				a[1]=0;
			}
			else
			{
				a[1]=a[1]-1;
				if(a[0]<=5)
					a[0]=0;
				else
					a[0]=a[0]-5;
			}
 
		}
	}
	if(i==1&&a[i]!=0)
	{
		if(a[i]%9==0)
			sum+=a[i]/9;
		else
			sum+=a[i]/9+1;
		if(a[0]<=36-(4*(a[i]%1)))
			a[0]=0;
		else
			a[0]=a[0]-(36-(4*(a[i]%9)));
	}
	if(i==0&&a[i]!=0)
	{
		if(a[i]%36==0)
			sum+=a[i]/36;
		else
			sum+=a[i]/36+1;
	}
 
 
 
}
printf("%d",sum);
}

Double click to view unformatted code.


Back to problem 88