打包装箱 (贪心 c ++)

题目描述

某校开展爱心捐书活动,同学们纷纷踊跃把自己看过的旧书拿出来捐给贫困山区的孩子们,图书室的胥林老师把同学们捐献的书打包在了6种纸箱子里(打包好的各类纸箱子有若干个),纸箱子的高相同,但底面积分为1 * 1,2 * 2,3 * 3,4 * 4,5 * 5,6 * 6。现为了装车方便,需要把这些纸箱子装在若干个6*6的木箱子,木箱子的高和打包纸箱子相同,请你帮助胥老师,用最少的木箱子打包完所有的纸箱子。

输入格式

一行(六个数)用空格隔开

分别表示1 * 1、2 * 2、3 * 3、4 * 4、5 * 5、6 * 6六类纸箱子的个数(每类箱子的个数小于等于100)

输出格式

一行,最少的木箱子个数

样例
样例输入

6 5 4 3 2 1

样例输出

7

思路

按照从大到小的顺序放入盒子

代码
#include 
int s1, s2, s3, s4,s5,s6;
long long sum;
int a[10] = {0, 5, 3, 1};
int main() {scanf("%d %d %d %d %d %d", &s1, &s2, &s3, &s4, &s5, &s6);sum += s6 + s5 + s4 + (s3 + 3) / 4;int r2, r1;r2 = s4 * 5 + a[s3 % 4];if(s2 > r2){sum += ((s2 - r2) + 8) / 9;}r1 = sum * 36 - s6 * 6 * 6 - s5 * 5 * 5 - s4 * 4 * 4 - s3 * 3 * 3 - s2 * 2 * 2;if(s1 > r1){sum += (s1 - r1 + 35) / 36;}printf("%lld", sum);return 0;
} 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部