1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| #include <cstdio> #include <algorithm>
int square[7];
int solve() { int res = 0; res += square[6]; res += square[5]; square[1] -= 11 * square[5]; res += square[4]; int remain = 20 * square[4]; while(remain != 0) { if (square[2] > 0) { square[2]--; remain-=4; } else if (square[1] > 0) { square[1]--; remain--; } else { break; } }
res += square[3] / 4; square[3] %= 4; if (square[3] > 0) { res++; int a; switch(square[3]) { case 1: a = 5; remain = 27; break; case 2: a = 3; remain = 18; break; case 3: a = 1; remain = 9; break; } while(remain && a && square[2] > 0) { remain-=4; square[2]--; a--; } square[1]-=remain; }
if (square[2] > 0) { res += square[2] / 9; square[2] %=9; if (square[2] > 0) { res++; square[1] -= 36 - 4 * square[2]; } } if (square[1] > 0) { res += square[1] / 36; if (square[1] % 36) res++; } return res; }
int main() { int i; while(1) { for(i=1;i<=6;i++) { scanf("%d", &square[i]); } if (square[1]+square[2]+square[3]+square[4]+square[5]+square[6] == 0) { break; } printf("%d\n", solve()); } return 0; }
|