#include long int sum; long int coin[4]; long int try[4]; long int value[4] = { 1, 5, 10, 25 }; long int ts; void printRes() { printf("Throw in %ld cents, %ld nickels, %ld dimes, and %ld quarters.\n",try[0],try[1],try[2],try[3]); } void removecoins() { long int v = ts - sum; long int rem, i; for(i = 2; i >=0; i--) { if (v >= value[i]) { rem = v / value[i] > try[i] ? try[i] : v/value[i]; v -= rem * value[i]; ts -= rem * value[i]; try[i] -= rem; } if (ts == sum) return; } } int main(void) { long int cc, i, zal[4], zts; for(;;) { scanf("%ld%ld%ld%ld%ld ",&sum,&coin[0],&coin[1],&coin[2],&coin[3]); if (sum == 0 && coin[0] == 0 && coin[1] == 0 && coin[2] == 0 && coin[3] == 0) break; ts = 0; for(i = 0; i < 4; i++) try[i] = 0; for(i = 0; i < 4; i++) { if (ts >= sum) break; cc = (sum - ts + value[i] - 1) / value[i]; try[i] = coin[i] < cc ? coin[i] : cc; ts += try[i] * value[i]; } /* printRes();*/ /* printf("TS: %d SUM: %d \n",ts,sum); */ if (ts == sum) { printRes(); continue; } if (ts < sum) { printf("Charlie cannot buy coffee.\n"); continue; } /* printRes();*/ for(i = 0; i < 4; i++) zal[i] = try[i]; zts = ts; removecoins(); /* printRes();*/ if (ts == sum) { printRes(); continue; } for(i = 0; i < 4; i++) try[i] = zal[i]; ts = zts; /* printRes();*/ if (try[3] < coin[3] && coin[3] > 0) { try[3]++; ts += 25; removecoins(); if (ts == sum) { printRes(); continue; } } printf("Charlie cannot buy coffee.\n"); } return 0; }