View Code of Problem 88

#include<stdio.h>
#include<string.h>
int main()
{
   int x,b[1000];
   int a[6];
   int i,sum=0;
   for(i=0;i<6;i++)
   {
     scanf("%d",&a[i]);
     sum+=a[i];
   }
   for(i=0;i<sum;i++)
     b[i]=6;
   int cnt=a[5]+a[4]+a[3],j;
   for(j=0;j<a[4]+a[3];j++)
   {
   	if(j<=a[4]-1)
   	  b[j]=1;
   	else
   	  b[j]=2;
   }
   for(i=2;i>=0;i--)
   {
   	  if(a[i]>0)
   	  {
   	  	  while(1)
   	  	  {
   	  	  	for(j=0;j<sum;j++)
   	  	  	{
   	  	  	  if(b[j]>=(i+1))
   	  	  	  {
   	  	  	  	if(b[j]==6)
   	  	  	  	  cnt++;
   	  	  	    int k=b[j]/(i+1);//此时最多能放几个
			    if(a[i]<=k)
				{
					a[i]=0;
					b[j]=b[j]-a[i]*(i+1);
				 }
				 else
				 {
				 	a[i]=a[i]-k;
				 	b[j]=b[j]-k*(i+1);
				 }
                break;
			  }
		    }
		    if(a[i]<=0)
		     break;
		   }
	  }
   }
   printf("%d\n",cnt);   
}

Double click to view unformatted code.


Back to problem 88