首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

poj1017装箱有关问题

2012-09-04 
poj1017装箱问题用的纯模拟;;听说有数学解法,稍候google一下:# include stdlib.h# include string.h#

poj1017装箱问题

用的纯模拟;;

听说有数学解法,稍候google一下:

# include <stdlib.h># include <string.h># include <string>int s[7];int go () {int ans = s[6];int t, t1, t2;ans += s[5];t = s[1] / 11;if (t >= s[5]) {s[1] -= s[5] * 11;}else {s[1] = 0;}//printf ("the ans is %d\n", ans);t = s[2] / 5;ans += s[4];if (t >= s[4]) {s[2] -= s[4] * 5;}else {t1 = s[4] - t;t2 = s[2] % 5;s[2] = 0;s[1] += t2 * 4;t = s[1] / 20;if (t >= t1) s[1] -= t1 * 20;else s[1] = 0;}//printf ("the ans is %d\n", ans);t = s[3] / 4;ans += t;t = s[3] % 4;if(t) {++ ans;t = 4 - t;t1 = t * 2 - 1;if(s[2] >= t1) {s[2] -= t1;t2 = t * 9 - t1 * 4;if(s[1] >= t2) s[1] -= t2;else s[1] = 0;}else {s[1] += s[2] * 4;s[2] = 0;t1 = s[1] / (9 * t);if (t1) s[1] -= 9 * t;else s[1] = 0;}}//printf ("the ans is %d\n", ans);t = s[2] / 9;ans += t;s[1] += (s[2] - t * 9) * 4;t = s[1] / 36;ans += t;if (s[1] % 36) ++ ans;printf ("%d\n", ans);return ans;}int main () {while ((scanf("%d %d %d %d %d %d", &s[1], &s[2], &s[3], &s[4], &s[5], &s[6]), s[1] + s[2] + s[3] + s[4] + s[5] + s[6])) {go();}return 0;}

热点排行