View Code of Problem 88

#include <stdio.h>
#include <string.h>

int main(){
	int a[7] = {0};
	for(int i=1;i<7;i++){
		scanf("%d",&a[i]);
	}
	int sum = a[6]+a[5]+a[4]+(a[3]+3)/4; //保底使用 
	int save2 = a[4]*5+(7-(a[3]%4)*2);//所剩空间如果存2*2能存几个 
	int save1 = a[5]*11+a[4]*20+(36-(a[3]%4)*9);//所剩空间如果存1*1能存几个  
	if(a[2]<=save2){//2*2个数小于能存个数 sum不变 
		save1 -= save2*4;//能存1*1个数变小 
		if(a[1]>save1){//如果1*1个数比能存的小 sum不变 如果大 则另外需要多少来存1*1 
			sum+=(a[1]-save1+35)/36;
		}
	}else{//2*2个数大于能存个数 sum增加 
		sum+=(a[2]-save2+8)/9;
		save1 = save1-save2*4+(36-((a[2]-save2)%4)*4);//1*1能存位置增加 
		if(a[1]>save2){
			sum+=(a[1]-save1+35)/36;
		}
	}
	printf("%d\n",sum);
}

Double click to view unformatted code.


Back to problem 88