#include int main(void) { int c, n, d, q, cena, konec=0, zbytek; while (konec == 0) { int pouc=0, poun=0, pouq=0, poud=0, zbytekc, pocet5, c5, pocet10; scanf("%d %d %d %d %d\n", &cena, &c, &n, &d, &q); if ((cena == 0) && (c == 0) && (n == 0) && (d == 0) && (q == 0)) konec = 1; else { if (c >= cena) { pouc = cena; printf("Throw in %d cents, %d nickels, %d dimes, and %d quarters.\n", pouc, poun, poud, pouq); continue; } zbytekc = cena % 5; if (zbytekc > c) { printf("Charlie cannot buy coffee.\n"); continue; } pouc = zbytekc; pocet5 = cena / 5; c = c - pouc; c5 = c / 5; if (c5 > pocet5) { pouc = pouc + pocet5*5; c = c - pocet5*5; } else { pouc = pouc + c5*5; c = c- c5 * 5; } zbytek = cena - pouc; // printf("Zbytek %d \n", zbytek); // printf("Throw in %d cents, %d nickels, %d dimes, and %d quarters.\n", pouc, poun, poud, pouq); if ((5*n) >= (zbytek)) { poun = zbytek / 5; printf("Throw in %d cents, %d nickels, %d dimes, and %d quarters.\n", pouc, poun, poud, pouq); continue; } if (n > 0) { pocet5 = zbytek / 5; if (pocet5 > n) { zbytek = zbytek -n*5; poun = n; n = 0; } } if ((n > 0) && (zbytek >= 5)) { poun++; n--; zbytek = zbytek - 5; } if ((c >= 5) && (zbytek >= 5)) { pouc= pouc+5; c = c -5; zbytek = zbytek -5; } if (d > 0) { if (zbytek % 10 == 5) { if (poun > 0) { n++; poun--; zbytek = zbytek + 5; } else if (pouc >= 5) { c = c+5; pouc = pouc-5; zbytek = zbytek + 5; } else { printf("Charlie cannot buy coffee.\n"); continue; } } if ((10*d) >= zbytek) { poud = zbytek / 10; printf("Throw in %d cents, %d nickels, %d dimes, and %d quarters.\n", pouc, poun, poud, pouq); continue; } pocet10 = zbytek / 10; if (pocet10 >= d) { zbytek = zbytek - 10*d; poud = d; d = 0; } } // printf("Zbytek %d\n", zbytek); // printf("Throw in %d cents, %d nickels, %d dimes, and %d quarters.\n", pouc, poun, poud, pouq); if ((d > 0) && (zbytek >= 10)) { poud++; d--; zbytek = zbytek -10; } if ((n > 0) && (zbytek >= 5)) { poun++; n--; zbytek = zbytek - 5; } if ((c >= 5) && (zbytek >= 5)) { pouc= pouc+5; c = c -5; zbytek = zbytek -5; } if ((n > 0) && (zbytek >= 5)) { poun++; n--; zbytek = zbytek - 5; } if ((c >= 5) && (zbytek >= 5)) { pouc= pouc+5; c = c -5; zbytek = zbytek -5; } if (q > 0) { if (((zbytek % 25) <= 20) && ((zbytek % 25) != 0)) { if (poud > 0) { poud--; d++; zbytek = zbytek + 10; } else if (poun > 1) { poun = poun - 2; n = n+2; zbytek = zbytek +10; } else if (poun > 0) { poun--; n++; zbytek = zbytek +5; if (pouc >=5) { pouc = pouc - 5; c = c+5; zbytek = zbytek+5; } else { printf("Charlie cannot buy coffee.\n"); continue; } } else if (pouc >= 10) { pouc = pouc - 10; c = c +10; zbytek = zbytek +10; } } if (((zbytek % 25) <= 20) && ((zbytek % 25) != 0)) { if (poun > 0) { poun--; n++; zbytek = zbytek +5; } else if (pouc >= 5) { pouc = pouc - 5; c = c +5; zbytek = zbytek +5; } else { printf("Charlie cannot buy coffee.\n"); continue; } } if (((zbytek % 25) <= 20) && ((zbytek % 25) != 0)) { if (poud > 0) { poud--; d++; zbytek = zbytek + 10; } else if (poun > 1) { poun = poun - 2; n = n+2; zbytek = zbytek +10; } else if (poun > 0) { poun--; n++; zbytek = zbytek +5; if (pouc >=5) { pouc = pouc - 5; c = c+5; zbytek = zbytek+5; } else { printf("Charlie cannot buy coffee.\n"); continue; } } else if (pouc >= 10) { pouc = pouc - 10; c = c +10; zbytek = zbytek +10; } } if (((zbytek % 25) <= 20) && ((zbytek % 25) != 0)) { if (poun > 0) { poun--; n++; zbytek = zbytek +5; } else if (pouc >= 5) { pouc = pouc - 5; c = c +5; zbytek = zbytek +5; } else { printf("Charlie cannot buy coffee.\n"); continue; } } // printf("Zbytek %d\n", zbytek); // printf("Throw in %d cents, %d nickels, %d dimes, and %d quarters.\n", pouc, poun, poud, pouq); if (zbytek % 25 == 0) { if ((q*25) >= zbytek) { pouq = zbytek / 25; printf("Throw in %d cents, %d nickels, %d dimes, and %d quarters.\n", pouc, poun, poud, pouq); } } else { printf("Charlie cannot buy coffee.\n"); continue; } } else { printf("Charlie cannot buy coffee.\n"); } } } return 0; }