#include typedef struct { int count; int c, n, d, q; } TItem; TItem pole[10010]; int index; int p, c, n, d, q; void Solve() { for(int index = 0; index < p; index++) { if (pole[index].count == 0 && index != 0) continue; if (pole[index].c > 0 && index+1 <= p && pole[index].count >= pole[index+1].count) { pole[index+1] = pole[index]; pole[index+1].c--; pole[index+1].count++; } if (pole[index].n > 0 && index+5 <= p && pole[index].count >= pole[index+5].count) { pole[index+5] = pole[index]; pole[index+5].n--; pole[index+5].count++; } if (pole[index].d > 0 && index+10 <= p && pole[index].count >= pole[index+10].count) { pole[index+10] = pole[index]; pole[index+10].d--; pole[index+10].count++; } if (pole[index].q > 0 && index+25 <= p && pole[index].count >= pole[index+25].count) { pole[index+25] = pole[index]; pole[index+25].q--; pole[index+25].count++; } } } int main() { scanf("%d %d %d %d %d", &p, &c, &n, &d, &q); while(!(p == 0 && c == 0 && n == 0 && d == 0 && q == 0)) { for(int i = 0; i <= p; i++) pole[i].count = 0; index = 0; pole[0].count = 0; pole[0].c = c; pole[0].n = n; pole[0].d = d; pole[0].q = q; Solve(); if (pole[p].count != 0) printf("Throw in %d cents, %d nickels, %d dimes, and %d quarters.\n", c-pole[p].c, n-pole[p].n, d-pole[p].d, q-pole[p].q); else printf("Charlie cannot buy coffee.\n"); scanf("%d %d %d %d %d", &p, &c, &n, &d, &q); } return 0; }