Packets(思维题,贪心)

优先装较小规格中较大的箱子

在这里插入图片描述

#include<stdio.h>
int main()
{
	int a,b,c,d,e,f,x,y;//x,y分别为给规格1,2的箱子剩余的空间
	int sum;
	while(~scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f))
	{
		if(a+b+c+d+e+f==0)
		break;
		sum=f+e+d+(c+3)/4;//(c+3)/4是向上取整 
		y=d*5;//因为装规格为5的箱子还能最多装5个规格为2的箱子
		if(c%4==3) 
		//判断规格为3的箱子数
		y+=1;
		else if(c%4==2)
		y+=3;
		else if(c%4==1)
		y+=5;
		//如果1*1和2*2的仍没有装完
		if(y<b)
		sum+=((b-y)+8)/9;
		x=36*sum-36*f-25*e-16*d-9*c-4*b;//x为剩余空间
		if(x<a)
		sum+=((a-x)+35)/36;
		printf("%d\n",sum); 
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值