#include #define D(x) int p1,p5,p10,p25; int c1,c5,c10,c25; int MM; int rup(int *N, int t1, int t5, int t10, int t25) { /* if ((*N % 50)==0) return 1; REM!!! OK*/ if ((c1 >= t1*MM) && (c5 >= t5*MM) && (c10 >= t10*MM) && (c25 >= t25*MM)) { int Nsave = *N; c1 -= t1*MM; c5 -= t5*MM; c10 -= t10*MM; c25 -= t25*MM; p1 += t1*MM; p5 += t5*MM; p10 += t10*MM; p25 += t25*MM; *N -= t1*MM + 5*t5*MM + 10*t10*MM + 25*t25*MM; D(printf("[%d->%d] (1:%d-%d=%d,5:%d-%d=%d,10:%d-%d=%d,25:%d-%d=%d)\n", Nsave, *N, c1+t1*MM, t1*MM, c1, c5+t5*MM, t5*MM, c5, c10+t10*MM, t10*MM, c10, c25+t25*MM, t25*MM, c25 )); D(printf("[pay: %d %d %d %d]\n", p1, p5, p10, p25)); return 1;/*OK*/ } return 0; /*nok*/ } int roundup(int *N) { /* first roundup N%50 */ /* modify the counts and the pays too */ switch(*N % 50) { default: if (rup(N,0,0,0,0)) break; /*0,0,0,0*/ break;case 1: if (rup(N,1,0,0,0)) break; /*1,0,0,0*/ break;case 2: if (rup(N,2,0,0,0)) break; /*2,0,0,0*/ break;case 3: if (rup(N,3,0,0,0)) break; /*3,0,0,0*/ break;case 4: if (rup(N,4,0,0,0)) break; /*4,0,0,0*/ break;case 5: if (rup(N,5,0,0,0)) break; /*5,0,0,0*/ if (rup(N,0,1,0,0)) break; /*0,5,0,0*/ break;case 6: if (rup(N,6,0,0,0)) break; /*6,0,0,0*/ if (rup(N,1,1,0,0)) break; /*1,5,0,0*/ break;case 7: if (rup(N,7,0,0,0)) break; /*7,0,0,0*/ if (rup(N,2,1,0,0)) break; /*2,5,0,0*/ break;case 8: if (rup(N,8,0,0,0)) break; /*8,0,0,0*/ if (rup(N,3,1,0,0)) break; /*3,5,0,0*/ break;case 9: if (rup(N,9,0,0,0)) break; /*9,0,0,0*/ if (rup(N,4,1,0,0)) break; /*4,5,0,0*/ break;case 10: if (rup(N,10,0,0,0)) break; /*10,0,0,0*/ if (rup(N,5,1,0,0)) break; /*5,5,0,0*/ if (rup(N,0,2,0,0)) break; /*0,10,0,0*/ if (rup(N,0,0,1,0)) break; /*0,0,10,0*/ break;case 11: if (rup(N,11,0,0,0)) break; /*11,0,0,0*/ if (rup(N,6,1,0,0)) break; /*6,5,0,0*/ if (rup(N,1,2,0,0)) break; /*1,10,0,0*/ if (rup(N,1,0,1,0)) break; /*1,0,10,0*/ break;case 12: if (rup(N,12,0,0,0)) break; /*12,0,0,0*/ if (rup(N,7,1,0,0)) break; /*7,5,0,0*/ if (rup(N,2,2,0,0)) break; /*2,10,0,0*/ if (rup(N,2,0,1,0)) break; /*2,0,10,0*/ break;case 13: if (rup(N,13,0,0,0)) break; /*13,0,0,0*/ if (rup(N,8,1,0,0)) break; /*8,5,0,0*/ if (rup(N,3,2,0,0)) break; /*3,10,0,0*/ if (rup(N,3,0,1,0)) break; /*3,0,10,0*/ break;case 14: if (rup(N,14,0,0,0)) break; /*14,0,0,0*/ if (rup(N,9,1,0,0)) break; /*9,5,0,0*/ if (rup(N,4,2,0,0)) break; /*4,10,0,0*/ if (rup(N,4,0,1,0)) break; /*4,0,10,0*/ break;case 15: if (rup(N,15,0,0,0)) break; /*15,0,0,0*/ if (rup(N,10,1,0,0)) break; /*10,5,0,0*/ if (rup(N,5,2,0,0)) break; /*5,10,0,0*/ if (rup(N,0,3,0,0)) break; /*0,15,0,0*/ if (rup(N,5,0,1,0)) break; /*5,0,10,0*/ if (rup(N,0,1,1,0)) break; /*0,5,10,0*/ break;case 16: if (rup(N,16,0,0,0)) break; /*16,0,0,0*/ if (rup(N,11,1,0,0)) break; /*11,5,0,0*/ if (rup(N,6,2,0,0)) break; /*6,10,0,0*/ if (rup(N,1,3,0,0)) break; /*1,15,0,0*/ if (rup(N,6,0,1,0)) break; /*6,0,10,0*/ if (rup(N,1,1,1,0)) break; /*1,5,10,0*/ break;case 17: if (rup(N,17,0,0,0)) break; /*17,0,0,0*/ if (rup(N,12,1,0,0)) break; /*12,5,0,0*/ if (rup(N,7,2,0,0)) break; /*7,10,0,0*/ if (rup(N,2,3,0,0)) break; /*2,15,0,0*/ if (rup(N,7,0,1,0)) break; /*7,0,10,0*/ if (rup(N,2,1,1,0)) break; /*2,5,10,0*/ break;case 18: if (rup(N,18,0,0,0)) break; /*18,0,0,0*/ if (rup(N,13,1,0,0)) break; /*13,5,0,0*/ if (rup(N,8,2,0,0)) break; /*8,10,0,0*/ if (rup(N,3,3,0,0)) break; /*3,15,0,0*/ if (rup(N,8,0,1,0)) break; /*8,0,10,0*/ if (rup(N,3,1,1,0)) break; /*3,5,10,0*/ break;case 19: if (rup(N,19,0,0,0)) break; /*19,0,0,0*/ if (rup(N,14,1,0,0)) break; /*14,5,0,0*/ if (rup(N,9,2,0,0)) break; /*9,10,0,0*/ if (rup(N,4,3,0,0)) break; /*4,15,0,0*/ if (rup(N,9,0,1,0)) break; /*9,0,10,0*/ if (rup(N,4,1,1,0)) break; /*4,5,10,0*/ break;case 20: if (rup(N,20,0,0,0)) break; /*20,0,0,0*/ if (rup(N,15,1,0,0)) break; /*15,5,0,0*/ if (rup(N,10,2,0,0)) break; /*10,10,0,0*/ if (rup(N,5,3,0,0)) break; /*5,15,0,0*/ if (rup(N,0,4,0,0)) break; /*0,20,0,0*/ if (rup(N,10,0,1,0)) break; /*10,0,10,0*/ if (rup(N,5,1,1,0)) break; /*5,5,10,0*/ if (rup(N,0,2,1,0)) break; /*0,10,10,0*/ if (rup(N,0,0,2,0)) break; /*0,0,20,0*/ break;case 21: if (rup(N,21,0,0,0)) break; /*21,0,0,0*/ if (rup(N,16,1,0,0)) break; /*16,5,0,0*/ if (rup(N,11,2,0,0)) break; /*11,10,0,0*/ if (rup(N,6,3,0,0)) break; /*6,15,0,0*/ if (rup(N,1,4,0,0)) break; /*1,20,0,0*/ if (rup(N,11,0,1,0)) break; /*11,0,10,0*/ if (rup(N,6,1,1,0)) break; /*6,5,10,0*/ if (rup(N,1,2,1,0)) break; /*1,10,10,0*/ if (rup(N,1,0,2,0)) break; /*1,0,20,0*/ break;case 22: if (rup(N,22,0,0,0)) break; /*22,0,0,0*/ if (rup(N,17,1,0,0)) break; /*17,5,0,0*/ if (rup(N,12,2,0,0)) break; /*12,10,0,0*/ if (rup(N,7,3,0,0)) break; /*7,15,0,0*/ if (rup(N,2,4,0,0)) break; /*2,20,0,0*/ if (rup(N,12,0,1,0)) break; /*12,0,10,0*/ if (rup(N,7,1,1,0)) break; /*7,5,10,0*/ if (rup(N,2,2,1,0)) break; /*2,10,10,0*/ if (rup(N,2,0,2,0)) break; /*2,0,20,0*/ break;case 23: if (rup(N,23,0,0,0)) break; /*23,0,0,0*/ if (rup(N,18,1,0,0)) break; /*18,5,0,0*/ if (rup(N,13,2,0,0)) break; /*13,10,0,0*/ if (rup(N,8,3,0,0)) break; /*8,15,0,0*/ if (rup(N,3,4,0,0)) break; /*3,20,0,0*/ if (rup(N,13,0,1,0)) break; /*13,0,10,0*/ if (rup(N,8,1,1,0)) break; /*8,5,10,0*/ if (rup(N,3,2,1,0)) break; /*3,10,10,0*/ if (rup(N,3,0,2,0)) break; /*3,0,20,0*/ break;case 24: if (rup(N,24,0,0,0)) break; /*24,0,0,0*/ if (rup(N,19,1,0,0)) break; /*19,5,0,0*/ if (rup(N,14,2,0,0)) break; /*14,10,0,0*/ if (rup(N,9,3,0,0)) break; /*9,15,0,0*/ if (rup(N,4,4,0,0)) break; /*4,20,0,0*/ if (rup(N,14,0,1,0)) break; /*14,0,10,0*/ if (rup(N,9,1,1,0)) break; /*9,5,10,0*/ if (rup(N,4,2,1,0)) break; /*4,10,10,0*/ if (rup(N,4,0,2,0)) break; /*4,0,20,0*/ break;case 25: if (rup(N,25,0,0,0)) break; /*25,0,0,0*/ if (rup(N,20,1,0,0)) break; /*20,5,0,0*/ if (rup(N,15,2,0,0)) break; /*15,10,0,0*/ if (rup(N,10,3,0,0)) break; /*10,15,0,0*/ if (rup(N,5,4,0,0)) break; /*5,20,0,0*/ if (rup(N,0,5,0,0)) break; /*0,25,0,0*/ if (rup(N,15,0,1,0)) break; /*15,0,10,0*/ if (rup(N,10,1,1,0)) break; /*10,5,10,0*/ if (rup(N,5,2,1,0)) break; /*5,10,10,0*/ if (rup(N,0,3,1,0)) break; /*0,15,10,0*/ if (rup(N,5,0,2,0)) break; /*5,0,20,0*/ if (rup(N,0,1,2,0)) break; /*0,5,20,0*/ if (rup(N,0,0,0,1)) break; /*0,0,0,25*/ break;case 26: if (rup(N,26,0,0,0)) break; /*26,0,0,0*/ if (rup(N,21,1,0,0)) break; /*21,5,0,0*/ if (rup(N,16,2,0,0)) break; /*16,10,0,0*/ if (rup(N,11,3,0,0)) break; /*11,15,0,0*/ if (rup(N,6,4,0,0)) break; /*6,20,0,0*/ if (rup(N,1,5,0,0)) break; /*1,25,0,0*/ if (rup(N,16,0,1,0)) break; /*16,0,10,0*/ if (rup(N,11,1,1,0)) break; /*11,5,10,0*/ if (rup(N,6,2,1,0)) break; /*6,10,10,0*/ if (rup(N,1,3,1,0)) break; /*1,15,10,0*/ if (rup(N,6,0,2,0)) break; /*6,0,20,0*/ if (rup(N,1,1,2,0)) break; /*1,5,20,0*/ if (rup(N,1,0,0,1)) break; /*1,0,0,25*/ break;case 27: if (rup(N,27,0,0,0)) break; /*27,0,0,0*/ if (rup(N,22,1,0,0)) break; /*22,5,0,0*/ if (rup(N,17,2,0,0)) break; /*17,10,0,0*/ if (rup(N,12,3,0,0)) break; /*12,15,0,0*/ if (rup(N,7,4,0,0)) break; /*7,20,0,0*/ if (rup(N,2,5,0,0)) break; /*2,25,0,0*/ if (rup(N,17,0,1,0)) break; /*17,0,10,0*/ if (rup(N,12,1,1,0)) break; /*12,5,10,0*/ if (rup(N,7,2,1,0)) break; /*7,10,10,0*/ if (rup(N,2,3,1,0)) break; /*2,15,10,0*/ if (rup(N,7,0,2,0)) break; /*7,0,20,0*/ if (rup(N,2,1,2,0)) break; /*2,5,20,0*/ if (rup(N,2,0,0,1)) break; /*2,0,0,25*/ break;case 28: if (rup(N,28,0,0,0)) break; /*28,0,0,0*/ if (rup(N,23,1,0,0)) break; /*23,5,0,0*/ if (rup(N,18,2,0,0)) break; /*18,10,0,0*/ if (rup(N,13,3,0,0)) break; /*13,15,0,0*/ if (rup(N,8,4,0,0)) break; /*8,20,0,0*/ if (rup(N,3,5,0,0)) break; /*3,25,0,0*/ if (rup(N,18,0,1,0)) break; /*18,0,10,0*/ if (rup(N,13,1,1,0)) break; /*13,5,10,0*/ if (rup(N,8,2,1,0)) break; /*8,10,10,0*/ if (rup(N,3,3,1,0)) break; /*3,15,10,0*/ if (rup(N,8,0,2,0)) break; /*8,0,20,0*/ if (rup(N,3,1,2,0)) break; /*3,5,20,0*/ if (rup(N,3,0,0,1)) break; /*3,0,0,25*/ break;case 29: if (rup(N,29,0,0,0)) break; /*29,0,0,0*/ if (rup(N,24,1,0,0)) break; /*24,5,0,0*/ if (rup(N,19,2,0,0)) break; /*19,10,0,0*/ if (rup(N,14,3,0,0)) break; /*14,15,0,0*/ if (rup(N,9,4,0,0)) break; /*9,20,0,0*/ if (rup(N,4,5,0,0)) break; /*4,25,0,0*/ if (rup(N,19,0,1,0)) break; /*19,0,10,0*/ if (rup(N,14,1,1,0)) break; /*14,5,10,0*/ if (rup(N,9,2,1,0)) break; /*9,10,10,0*/ if (rup(N,4,3,1,0)) break; /*4,15,10,0*/ if (rup(N,9,0,2,0)) break; /*9,0,20,0*/ if (rup(N,4,1,2,0)) break; /*4,5,20,0*/ if (rup(N,4,0,0,1)) break; /*4,0,0,25*/ break;case 30: if (rup(N,30,0,0,0)) break; /*30,0,0,0*/ if (rup(N,25,1,0,0)) break; /*25,5,0,0*/ if (rup(N,20,2,0,0)) break; /*20,10,0,0*/ if (rup(N,15,3,0,0)) break; /*15,15,0,0*/ if (rup(N,10,4,0,0)) break; /*10,20,0,0*/ if (rup(N,5,5,0,0)) break; /*5,25,0,0*/ if (rup(N,0,6,0,0)) break; /*0,30,0,0*/ if (rup(N,20,0,1,0)) break; /*20,0,10,0*/ if (rup(N,15,1,1,0)) break; /*15,5,10,0*/ if (rup(N,10,2,1,0)) break; /*10,10,10,0*/ if (rup(N,5,3,1,0)) break; /*5,15,10,0*/ if (rup(N,0,4,1,0)) break; /*0,20,10,0*/ if (rup(N,10,0,2,0)) break; /*10,0,20,0*/ if (rup(N,5,1,2,0)) break; /*5,5,20,0*/ if (rup(N,0,2,2,0)) break; /*0,10,20,0*/ if (rup(N,0,0,3,0)) break; /*0,0,30,0*/ if (rup(N,5,0,0,1)) break; /*5,0,0,25*/ if (rup(N,0,1,0,1)) break; /*0,5,0,25*/ break;case 31: if (rup(N,31,0,0,0)) break; /*31,0,0,0*/ if (rup(N,26,1,0,0)) break; /*26,5,0,0*/ if (rup(N,21,2,0,0)) break; /*21,10,0,0*/ if (rup(N,16,3,0,0)) break; /*16,15,0,0*/ if (rup(N,11,4,0,0)) break; /*11,20,0,0*/ if (rup(N,6,5,0,0)) break; /*6,25,0,0*/ if (rup(N,1,6,0,0)) break; /*1,30,0,0*/ if (rup(N,21,0,1,0)) break; /*21,0,10,0*/ if (rup(N,16,1,1,0)) break; /*16,5,10,0*/ if (rup(N,11,2,1,0)) break; /*11,10,10,0*/ if (rup(N,6,3,1,0)) break; /*6,15,10,0*/ if (rup(N,1,4,1,0)) break; /*1,20,10,0*/ if (rup(N,11,0,2,0)) break; /*11,0,20,0*/ if (rup(N,6,1,2,0)) break; /*6,5,20,0*/ if (rup(N,1,2,2,0)) break; /*1,10,20,0*/ if (rup(N,1,0,3,0)) break; /*1,0,30,0*/ if (rup(N,6,0,0,1)) break; /*6,0,0,25*/ if (rup(N,1,1,0,1)) break; /*1,5,0,25*/ break;case 32: if (rup(N,32,0,0,0)) break; /*32,0,0,0*/ if (rup(N,27,1,0,0)) break; /*27,5,0,0*/ if (rup(N,22,2,0,0)) break; /*22,10,0,0*/ if (rup(N,17,3,0,0)) break; /*17,15,0,0*/ if (rup(N,12,4,0,0)) break; /*12,20,0,0*/ if (rup(N,7,5,0,0)) break; /*7,25,0,0*/ if (rup(N,2,6,0,0)) break; /*2,30,0,0*/ if (rup(N,22,0,1,0)) break; /*22,0,10,0*/ if (rup(N,17,1,1,0)) break; /*17,5,10,0*/ if (rup(N,12,2,1,0)) break; /*12,10,10,0*/ if (rup(N,7,3,1,0)) break; /*7,15,10,0*/ if (rup(N,2,4,1,0)) break; /*2,20,10,0*/ if (rup(N,12,0,2,0)) break; /*12,0,20,0*/ if (rup(N,7,1,2,0)) break; /*7,5,20,0*/ if (rup(N,2,2,2,0)) break; /*2,10,20,0*/ if (rup(N,2,0,3,0)) break; /*2,0,30,0*/ if (rup(N,7,0,0,1)) break; /*7,0,0,25*/ if (rup(N,2,1,0,1)) break; /*2,5,0,25*/ break;case 33: if (rup(N,33,0,0,0)) break; /*33,0,0,0*/ if (rup(N,28,1,0,0)) break; /*28,5,0,0*/ if (rup(N,23,2,0,0)) break; /*23,10,0,0*/ if (rup(N,18,3,0,0)) break; /*18,15,0,0*/ if (rup(N,13,4,0,0)) break; /*13,20,0,0*/ if (rup(N,8,5,0,0)) break; /*8,25,0,0*/ if (rup(N,3,6,0,0)) break; /*3,30,0,0*/ if (rup(N,23,0,1,0)) break; /*23,0,10,0*/ if (rup(N,18,1,1,0)) break; /*18,5,10,0*/ if (rup(N,13,2,1,0)) break; /*13,10,10,0*/ if (rup(N,8,3,1,0)) break; /*8,15,10,0*/ if (rup(N,3,4,1,0)) break; /*3,20,10,0*/ if (rup(N,13,0,2,0)) break; /*13,0,20,0*/ if (rup(N,8,1,2,0)) break; /*8,5,20,0*/ if (rup(N,3,2,2,0)) break; /*3,10,20,0*/ if (rup(N,3,0,3,0)) break; /*3,0,30,0*/ if (rup(N,8,0,0,1)) break; /*8,0,0,25*/ if (rup(N,3,1,0,1)) break; /*3,5,0,25*/ break;case 34: if (rup(N,34,0,0,0)) break; /*34,0,0,0*/ if (rup(N,29,1,0,0)) break; /*29,5,0,0*/ if (rup(N,24,2,0,0)) break; /*24,10,0,0*/ if (rup(N,19,3,0,0)) break; /*19,15,0,0*/ if (rup(N,14,4,0,0)) break; /*14,20,0,0*/ if (rup(N,9,5,0,0)) break; /*9,25,0,0*/ if (rup(N,4,6,0,0)) break; /*4,30,0,0*/ if (rup(N,24,0,1,0)) break; /*24,0,10,0*/ if (rup(N,19,1,1,0)) break; /*19,5,10,0*/ if (rup(N,14,2,1,0)) break; /*14,10,10,0*/ if (rup(N,9,3,1,0)) break; /*9,15,10,0*/ if (rup(N,4,4,1,0)) break; /*4,20,10,0*/ if (rup(N,14,0,2,0)) break; /*14,0,20,0*/ if (rup(N,9,1,2,0)) break; /*9,5,20,0*/ if (rup(N,4,2,2,0)) break; /*4,10,20,0*/ if (rup(N,4,0,3,0)) break; /*4,0,30,0*/ if (rup(N,9,0,0,1)) break; /*9,0,0,25*/ if (rup(N,4,1,0,1)) break; /*4,5,0,25*/ break;case 35: if (rup(N,35,0,0,0)) break; /*35,0,0,0*/ if (rup(N,30,1,0,0)) break; /*30,5,0,0*/ if (rup(N,25,2,0,0)) break; /*25,10,0,0*/ if (rup(N,20,3,0,0)) break; /*20,15,0,0*/ if (rup(N,15,4,0,0)) break; /*15,20,0,0*/ if (rup(N,10,5,0,0)) break; /*10,25,0,0*/ if (rup(N,5,6,0,0)) break; /*5,30,0,0*/ if (rup(N,0,7,0,0)) break; /*0,35,0,0*/ if (rup(N,25,0,1,0)) break; /*25,0,10,0*/ if (rup(N,20,1,1,0)) break; /*20,5,10,0*/ if (rup(N,15,2,1,0)) break; /*15,10,10,0*/ if (rup(N,10,3,1,0)) break; /*10,15,10,0*/ if (rup(N,5,4,1,0)) break; /*5,20,10,0*/ if (rup(N,0,5,1,0)) break; /*0,25,10,0*/ if (rup(N,15,0,2,0)) break; /*15,0,20,0*/ if (rup(N,10,1,2,0)) break; /*10,5,20,0*/ if (rup(N,5,2,2,0)) break; /*5,10,20,0*/ if (rup(N,0,3,2,0)) break; /*0,15,20,0*/ if (rup(N,5,0,3,0)) break; /*5,0,30,0*/ if (rup(N,0,1,3,0)) break; /*0,5,30,0*/ if (rup(N,10,0,0,1)) break; /*10,0,0,25*/ if (rup(N,5,1,0,1)) break; /*5,5,0,25*/ if (rup(N,0,2,0,1)) break; /*0,10,0,25*/ if (rup(N,0,0,1,1)) break; /*0,0,10,25*/ break;case 36: if (rup(N,36,0,0,0)) break; /*36,0,0,0*/ if (rup(N,31,1,0,0)) break; /*31,5,0,0*/ if (rup(N,26,2,0,0)) break; /*26,10,0,0*/ if (rup(N,21,3,0,0)) break; /*21,15,0,0*/ if (rup(N,16,4,0,0)) break; /*16,20,0,0*/ if (rup(N,11,5,0,0)) break; /*11,25,0,0*/ if (rup(N,6,6,0,0)) break; /*6,30,0,0*/ if (rup(N,1,7,0,0)) break; /*1,35,0,0*/ if (rup(N,26,0,1,0)) break; /*26,0,10,0*/ if (rup(N,21,1,1,0)) break; /*21,5,10,0*/ if (rup(N,16,2,1,0)) break; /*16,10,10,0*/ if (rup(N,11,3,1,0)) break; /*11,15,10,0*/ if (rup(N,6,4,1,0)) break; /*6,20,10,0*/ if (rup(N,1,5,1,0)) break; /*1,25,10,0*/ if (rup(N,16,0,2,0)) break; /*16,0,20,0*/ if (rup(N,11,1,2,0)) break; /*11,5,20,0*/ if (rup(N,6,2,2,0)) break; /*6,10,20,0*/ if (rup(N,1,3,2,0)) break; /*1,15,20,0*/ if (rup(N,6,0,3,0)) break; /*6,0,30,0*/ if (rup(N,1,1,3,0)) break; /*1,5,30,0*/ if (rup(N,11,0,0,1)) break; /*11,0,0,25*/ if (rup(N,6,1,0,1)) break; /*6,5,0,25*/ if (rup(N,1,2,0,1)) break; /*1,10,0,25*/ if (rup(N,1,0,1,1)) break; /*1,0,10,25*/ break;case 37: if (rup(N,37,0,0,0)) break; /*37,0,0,0*/ if (rup(N,32,1,0,0)) break; /*32,5,0,0*/ if (rup(N,27,2,0,0)) break; /*27,10,0,0*/ if (rup(N,22,3,0,0)) break; /*22,15,0,0*/ if (rup(N,17,4,0,0)) break; /*17,20,0,0*/ if (rup(N,12,5,0,0)) break; /*12,25,0,0*/ if (rup(N,7,6,0,0)) break; /*7,30,0,0*/ if (rup(N,2,7,0,0)) break; /*2,35,0,0*/ if (rup(N,27,0,1,0)) break; /*27,0,10,0*/ if (rup(N,22,1,1,0)) break; /*22,5,10,0*/ if (rup(N,17,2,1,0)) break; /*17,10,10,0*/ if (rup(N,12,3,1,0)) break; /*12,15,10,0*/ if (rup(N,7,4,1,0)) break; /*7,20,10,0*/ if (rup(N,2,5,1,0)) break; /*2,25,10,0*/ if (rup(N,17,0,2,0)) break; /*17,0,20,0*/ if (rup(N,12,1,2,0)) break; /*12,5,20,0*/ if (rup(N,7,2,2,0)) break; /*7,10,20,0*/ if (rup(N,2,3,2,0)) break; /*2,15,20,0*/ if (rup(N,7,0,3,0)) break; /*7,0,30,0*/ if (rup(N,2,1,3,0)) break; /*2,5,30,0*/ if (rup(N,12,0,0,1)) break; /*12,0,0,25*/ if (rup(N,7,1,0,1)) break; /*7,5,0,25*/ if (rup(N,2,2,0,1)) break; /*2,10,0,25*/ if (rup(N,2,0,1,1)) break; /*2,0,10,25*/ break;case 38: if (rup(N,38,0,0,0)) break; /*38,0,0,0*/ if (rup(N,33,1,0,0)) break; /*33,5,0,0*/ if (rup(N,28,2,0,0)) break; /*28,10,0,0*/ if (rup(N,23,3,0,0)) break; /*23,15,0,0*/ if (rup(N,18,4,0,0)) break; /*18,20,0,0*/ if (rup(N,13,5,0,0)) break; /*13,25,0,0*/ if (rup(N,8,6,0,0)) break; /*8,30,0,0*/ if (rup(N,3,7,0,0)) break; /*3,35,0,0*/ if (rup(N,28,0,1,0)) break; /*28,0,10,0*/ if (rup(N,23,1,1,0)) break; /*23,5,10,0*/ if (rup(N,18,2,1,0)) break; /*18,10,10,0*/ if (rup(N,13,3,1,0)) break; /*13,15,10,0*/ if (rup(N,8,4,1,0)) break; /*8,20,10,0*/ if (rup(N,3,5,1,0)) break; /*3,25,10,0*/ if (rup(N,18,0,2,0)) break; /*18,0,20,0*/ if (rup(N,13,1,2,0)) break; /*13,5,20,0*/ if (rup(N,8,2,2,0)) break; /*8,10,20,0*/ if (rup(N,3,3,2,0)) break; /*3,15,20,0*/ if (rup(N,8,0,3,0)) break; /*8,0,30,0*/ if (rup(N,3,1,3,0)) break; /*3,5,30,0*/ if (rup(N,13,0,0,1)) break; /*13,0,0,25*/ if (rup(N,8,1,0,1)) break; /*8,5,0,25*/ if (rup(N,3,2,0,1)) break; /*3,10,0,25*/ if (rup(N,3,0,1,1)) break; /*3,0,10,25*/ break;case 39: if (rup(N,39,0,0,0)) break; /*39,0,0,0*/ if (rup(N,34,1,0,0)) break; /*34,5,0,0*/ if (rup(N,29,2,0,0)) break; /*29,10,0,0*/ if (rup(N,24,3,0,0)) break; /*24,15,0,0*/ if (rup(N,19,4,0,0)) break; /*19,20,0,0*/ if (rup(N,14,5,0,0)) break; /*14,25,0,0*/ if (rup(N,9,6,0,0)) break; /*9,30,0,0*/ if (rup(N,4,7,0,0)) break; /*4,35,0,0*/ if (rup(N,29,0,1,0)) break; /*29,0,10,0*/ if (rup(N,24,1,1,0)) break; /*24,5,10,0*/ if (rup(N,19,2,1,0)) break; /*19,10,10,0*/ if (rup(N,14,3,1,0)) break; /*14,15,10,0*/ if (rup(N,9,4,1,0)) break; /*9,20,10,0*/ if (rup(N,4,5,1,0)) break; /*4,25,10,0*/ if (rup(N,19,0,2,0)) break; /*19,0,20,0*/ if (rup(N,14,1,2,0)) break; /*14,5,20,0*/ if (rup(N,9,2,2,0)) break; /*9,10,20,0*/ if (rup(N,4,3,2,0)) break; /*4,15,20,0*/ if (rup(N,9,0,3,0)) break; /*9,0,30,0*/ if (rup(N,4,1,3,0)) break; /*4,5,30,0*/ if (rup(N,14,0,0,1)) break; /*14,0,0,25*/ if (rup(N,9,1,0,1)) break; /*9,5,0,25*/ if (rup(N,4,2,0,1)) break; /*4,10,0,25*/ if (rup(N,4,0,1,1)) break; /*4,0,10,25*/ break;case 40: if (rup(N,40,0,0,0)) break; /*40,0,0,0*/ if (rup(N,35,1,0,0)) break; /*35,5,0,0*/ if (rup(N,30,2,0,0)) break; /*30,10,0,0*/ if (rup(N,25,3,0,0)) break; /*25,15,0,0*/ if (rup(N,20,4,0,0)) break; /*20,20,0,0*/ if (rup(N,15,5,0,0)) break; /*15,25,0,0*/ if (rup(N,10,6,0,0)) break; /*10,30,0,0*/ if (rup(N,5,7,0,0)) break; /*5,35,0,0*/ if (rup(N,0,8,0,0)) break; /*0,40,0,0*/ if (rup(N,30,0,1,0)) break; /*30,0,10,0*/ if (rup(N,25,1,1,0)) break; /*25,5,10,0*/ if (rup(N,20,2,1,0)) break; /*20,10,10,0*/ if (rup(N,15,3,1,0)) break; /*15,15,10,0*/ if (rup(N,10,4,1,0)) break; /*10,20,10,0*/ if (rup(N,5,5,1,0)) break; /*5,25,10,0*/ if (rup(N,0,6,1,0)) break; /*0,30,10,0*/ if (rup(N,20,0,2,0)) break; /*20,0,20,0*/ if (rup(N,15,1,2,0)) break; /*15,5,20,0*/ if (rup(N,10,2,2,0)) break; /*10,10,20,0*/ if (rup(N,5,3,2,0)) break; /*5,15,20,0*/ if (rup(N,0,4,2,0)) break; /*0,20,20,0*/ if (rup(N,10,0,3,0)) break; /*10,0,30,0*/ if (rup(N,5,1,3,0)) break; /*5,5,30,0*/ if (rup(N,0,2,3,0)) break; /*0,10,30,0*/ if (rup(N,0,0,4,0)) break; /*0,0,40,0*/ if (rup(N,15,0,0,1)) break; /*15,0,0,25*/ if (rup(N,10,1,0,1)) break; /*10,5,0,25*/ if (rup(N,5,2,0,1)) break; /*5,10,0,25*/ if (rup(N,0,3,0,1)) break; /*0,15,0,25*/ if (rup(N,5,0,1,1)) break; /*5,0,10,25*/ if (rup(N,0,1,1,1)) break; /*0,5,10,25*/ break;case 41: if (rup(N,41,0,0,0)) break; /*41,0,0,0*/ if (rup(N,36,1,0,0)) break; /*36,5,0,0*/ if (rup(N,31,2,0,0)) break; /*31,10,0,0*/ if (rup(N,26,3,0,0)) break; /*26,15,0,0*/ if (rup(N,21,4,0,0)) break; /*21,20,0,0*/ if (rup(N,16,5,0,0)) break; /*16,25,0,0*/ if (rup(N,11,6,0,0)) break; /*11,30,0,0*/ if (rup(N,6,7,0,0)) break; /*6,35,0,0*/ if (rup(N,1,8,0,0)) break; /*1,40,0,0*/ if (rup(N,31,0,1,0)) break; /*31,0,10,0*/ if (rup(N,26,1,1,0)) break; /*26,5,10,0*/ if (rup(N,21,2,1,0)) break; /*21,10,10,0*/ if (rup(N,16,3,1,0)) break; /*16,15,10,0*/ if (rup(N,11,4,1,0)) break; /*11,20,10,0*/ if (rup(N,6,5,1,0)) break; /*6,25,10,0*/ if (rup(N,1,6,1,0)) break; /*1,30,10,0*/ if (rup(N,21,0,2,0)) break; /*21,0,20,0*/ if (rup(N,16,1,2,0)) break; /*16,5,20,0*/ if (rup(N,11,2,2,0)) break; /*11,10,20,0*/ if (rup(N,6,3,2,0)) break; /*6,15,20,0*/ if (rup(N,1,4,2,0)) break; /*1,20,20,0*/ if (rup(N,11,0,3,0)) break; /*11,0,30,0*/ if (rup(N,6,1,3,0)) break; /*6,5,30,0*/ if (rup(N,1,2,3,0)) break; /*1,10,30,0*/ if (rup(N,1,0,4,0)) break; /*1,0,40,0*/ if (rup(N,16,0,0,1)) break; /*16,0,0,25*/ if (rup(N,11,1,0,1)) break; /*11,5,0,25*/ if (rup(N,6,2,0,1)) break; /*6,10,0,25*/ if (rup(N,1,3,0,1)) break; /*1,15,0,25*/ if (rup(N,6,0,1,1)) break; /*6,0,10,25*/ if (rup(N,1,1,1,1)) break; /*1,5,10,25*/ break;case 42: if (rup(N,42,0,0,0)) break; /*42,0,0,0*/ if (rup(N,37,1,0,0)) break; /*37,5,0,0*/ if (rup(N,32,2,0,0)) break; /*32,10,0,0*/ if (rup(N,27,3,0,0)) break; /*27,15,0,0*/ if (rup(N,22,4,0,0)) break; /*22,20,0,0*/ if (rup(N,17,5,0,0)) break; /*17,25,0,0*/ if (rup(N,12,6,0,0)) break; /*12,30,0,0*/ if (rup(N,7,7,0,0)) break; /*7,35,0,0*/ if (rup(N,2,8,0,0)) break; /*2,40,0,0*/ if (rup(N,32,0,1,0)) break; /*32,0,10,0*/ if (rup(N,27,1,1,0)) break; /*27,5,10,0*/ if (rup(N,22,2,1,0)) break; /*22,10,10,0*/ if (rup(N,17,3,1,0)) break; /*17,15,10,0*/ if (rup(N,12,4,1,0)) break; /*12,20,10,0*/ if (rup(N,7,5,1,0)) break; /*7,25,10,0*/ if (rup(N,2,6,1,0)) break; /*2,30,10,0*/ if (rup(N,22,0,2,0)) break; /*22,0,20,0*/ if (rup(N,17,1,2,0)) break; /*17,5,20,0*/ if (rup(N,12,2,2,0)) break; /*12,10,20,0*/ if (rup(N,7,3,2,0)) break; /*7,15,20,0*/ if (rup(N,2,4,2,0)) break; /*2,20,20,0*/ if (rup(N,12,0,3,0)) break; /*12,0,30,0*/ if (rup(N,7,1,3,0)) break; /*7,5,30,0*/ if (rup(N,2,2,3,0)) break; /*2,10,30,0*/ if (rup(N,2,0,4,0)) break; /*2,0,40,0*/ if (rup(N,17,0,0,1)) break; /*17,0,0,25*/ if (rup(N,12,1,0,1)) break; /*12,5,0,25*/ if (rup(N,7,2,0,1)) break; /*7,10,0,25*/ if (rup(N,2,3,0,1)) break; /*2,15,0,25*/ if (rup(N,7,0,1,1)) break; /*7,0,10,25*/ if (rup(N,2,1,1,1)) break; /*2,5,10,25*/ break;case 43: if (rup(N,43,0,0,0)) break; /*43,0,0,0*/ if (rup(N,38,1,0,0)) break; /*38,5,0,0*/ if (rup(N,33,2,0,0)) break; /*33,10,0,0*/ if (rup(N,28,3,0,0)) break; /*28,15,0,0*/ if (rup(N,23,4,0,0)) break; /*23,20,0,0*/ if (rup(N,18,5,0,0)) break; /*18,25,0,0*/ if (rup(N,13,6,0,0)) break; /*13,30,0,0*/ if (rup(N,8,7,0,0)) break; /*8,35,0,0*/ if (rup(N,3,8,0,0)) break; /*3,40,0,0*/ if (rup(N,33,0,1,0)) break; /*33,0,10,0*/ if (rup(N,28,1,1,0)) break; /*28,5,10,0*/ if (rup(N,23,2,1,0)) break; /*23,10,10,0*/ if (rup(N,18,3,1,0)) break; /*18,15,10,0*/ if (rup(N,13,4,1,0)) break; /*13,20,10,0*/ if (rup(N,8,5,1,0)) break; /*8,25,10,0*/ if (rup(N,3,6,1,0)) break; /*3,30,10,0*/ if (rup(N,23,0,2,0)) break; /*23,0,20,0*/ if (rup(N,18,1,2,0)) break; /*18,5,20,0*/ if (rup(N,13,2,2,0)) break; /*13,10,20,0*/ if (rup(N,8,3,2,0)) break; /*8,15,20,0*/ if (rup(N,3,4,2,0)) break; /*3,20,20,0*/ if (rup(N,13,0,3,0)) break; /*13,0,30,0*/ if (rup(N,8,1,3,0)) break; /*8,5,30,0*/ if (rup(N,3,2,3,0)) break; /*3,10,30,0*/ if (rup(N,3,0,4,0)) break; /*3,0,40,0*/ if (rup(N,18,0,0,1)) break; /*18,0,0,25*/ if (rup(N,13,1,0,1)) break; /*13,5,0,25*/ if (rup(N,8,2,0,1)) break; /*8,10,0,25*/ if (rup(N,3,3,0,1)) break; /*3,15,0,25*/ if (rup(N,8,0,1,1)) break; /*8,0,10,25*/ if (rup(N,3,1,1,1)) break; /*3,5,10,25*/ break;case 44: if (rup(N,44,0,0,0)) break; /*44,0,0,0*/ if (rup(N,39,1,0,0)) break; /*39,5,0,0*/ if (rup(N,34,2,0,0)) break; /*34,10,0,0*/ if (rup(N,29,3,0,0)) break; /*29,15,0,0*/ if (rup(N,24,4,0,0)) break; /*24,20,0,0*/ if (rup(N,19,5,0,0)) break; /*19,25,0,0*/ if (rup(N,14,6,0,0)) break; /*14,30,0,0*/ if (rup(N,9,7,0,0)) break; /*9,35,0,0*/ if (rup(N,4,8,0,0)) break; /*4,40,0,0*/ if (rup(N,34,0,1,0)) break; /*34,0,10,0*/ if (rup(N,29,1,1,0)) break; /*29,5,10,0*/ if (rup(N,24,2,1,0)) break; /*24,10,10,0*/ if (rup(N,19,3,1,0)) break; /*19,15,10,0*/ if (rup(N,14,4,1,0)) break; /*14,20,10,0*/ if (rup(N,9,5,1,0)) break; /*9,25,10,0*/ if (rup(N,4,6,1,0)) break; /*4,30,10,0*/ if (rup(N,24,0,2,0)) break; /*24,0,20,0*/ if (rup(N,19,1,2,0)) break; /*19,5,20,0*/ if (rup(N,14,2,2,0)) break; /*14,10,20,0*/ if (rup(N,9,3,2,0)) break; /*9,15,20,0*/ if (rup(N,4,4,2,0)) break; /*4,20,20,0*/ if (rup(N,14,0,3,0)) break; /*14,0,30,0*/ if (rup(N,9,1,3,0)) break; /*9,5,30,0*/ if (rup(N,4,2,3,0)) break; /*4,10,30,0*/ if (rup(N,4,0,4,0)) break; /*4,0,40,0*/ if (rup(N,19,0,0,1)) break; /*19,0,0,25*/ if (rup(N,14,1,0,1)) break; /*14,5,0,25*/ if (rup(N,9,2,0,1)) break; /*9,10,0,25*/ if (rup(N,4,3,0,1)) break; /*4,15,0,25*/ if (rup(N,9,0,1,1)) break; /*9,0,10,25*/ if (rup(N,4,1,1,1)) break; /*4,5,10,25*/ break;case 45: if (rup(N,45,0,0,0)) break; /*45,0,0,0*/ if (rup(N,40,1,0,0)) break; /*40,5,0,0*/ if (rup(N,35,2,0,0)) break; /*35,10,0,0*/ if (rup(N,30,3,0,0)) break; /*30,15,0,0*/ if (rup(N,25,4,0,0)) break; /*25,20,0,0*/ if (rup(N,20,5,0,0)) break; /*20,25,0,0*/ if (rup(N,15,6,0,0)) break; /*15,30,0,0*/ if (rup(N,10,7,0,0)) break; /*10,35,0,0*/ if (rup(N,5,8,0,0)) break; /*5,40,0,0*/ if (rup(N,0,9,0,0)) break; /*0,45,0,0*/ if (rup(N,35,0,1,0)) break; /*35,0,10,0*/ if (rup(N,30,1,1,0)) break; /*30,5,10,0*/ if (rup(N,25,2,1,0)) break; /*25,10,10,0*/ if (rup(N,20,3,1,0)) break; /*20,15,10,0*/ if (rup(N,15,4,1,0)) break; /*15,20,10,0*/ if (rup(N,10,5,1,0)) break; /*10,25,10,0*/ if (rup(N,5,6,1,0)) break; /*5,30,10,0*/ if (rup(N,0,7,1,0)) break; /*0,35,10,0*/ if (rup(N,25,0,2,0)) break; /*25,0,20,0*/ if (rup(N,20,1,2,0)) break; /*20,5,20,0*/ if (rup(N,15,2,2,0)) break; /*15,10,20,0*/ if (rup(N,10,3,2,0)) break; /*10,15,20,0*/ if (rup(N,5,4,2,0)) break; /*5,20,20,0*/ if (rup(N,0,5,2,0)) break; /*0,25,20,0*/ if (rup(N,15,0,3,0)) break; /*15,0,30,0*/ if (rup(N,10,1,3,0)) break; /*10,5,30,0*/ if (rup(N,5,2,3,0)) break; /*5,10,30,0*/ if (rup(N,0,3,3,0)) break; /*0,15,30,0*/ if (rup(N,5,0,4,0)) break; /*5,0,40,0*/ if (rup(N,0,1,4,0)) break; /*0,5,40,0*/ if (rup(N,20,0,0,1)) break; /*20,0,0,25*/ if (rup(N,15,1,0,1)) break; /*15,5,0,25*/ if (rup(N,10,2,0,1)) break; /*10,10,0,25*/ if (rup(N,5,3,0,1)) break; /*5,15,0,25*/ if (rup(N,0,4,0,1)) break; /*0,20,0,25*/ if (rup(N,10,0,1,1)) break; /*10,0,10,25*/ if (rup(N,5,1,1,1)) break; /*5,5,10,25*/ if (rup(N,0,2,1,1)) break; /*0,10,10,25*/ if (rup(N,0,0,2,1)) break; /*0,0,20,25*/ break;case 46: if (rup(N,46,0,0,0)) break; /*46,0,0,0*/ if (rup(N,41,1,0,0)) break; /*41,5,0,0*/ if (rup(N,36,2,0,0)) break; /*36,10,0,0*/ if (rup(N,31,3,0,0)) break; /*31,15,0,0*/ if (rup(N,26,4,0,0)) break; /*26,20,0,0*/ if (rup(N,21,5,0,0)) break; /*21,25,0,0*/ if (rup(N,16,6,0,0)) break; /*16,30,0,0*/ if (rup(N,11,7,0,0)) break; /*11,35,0,0*/ if (rup(N,6,8,0,0)) break; /*6,40,0,0*/ if (rup(N,1,9,0,0)) break; /*1,45,0,0*/ if (rup(N,36,0,1,0)) break; /*36,0,10,0*/ if (rup(N,31,1,1,0)) break; /*31,5,10,0*/ if (rup(N,26,2,1,0)) break; /*26,10,10,0*/ if (rup(N,21,3,1,0)) break; /*21,15,10,0*/ if (rup(N,16,4,1,0)) break; /*16,20,10,0*/ if (rup(N,11,5,1,0)) break; /*11,25,10,0*/ if (rup(N,6,6,1,0)) break; /*6,30,10,0*/ if (rup(N,1,7,1,0)) break; /*1,35,10,0*/ if (rup(N,26,0,2,0)) break; /*26,0,20,0*/ if (rup(N,21,1,2,0)) break; /*21,5,20,0*/ if (rup(N,16,2,2,0)) break; /*16,10,20,0*/ if (rup(N,11,3,2,0)) break; /*11,15,20,0*/ if (rup(N,6,4,2,0)) break; /*6,20,20,0*/ if (rup(N,1,5,2,0)) break; /*1,25,20,0*/ if (rup(N,16,0,3,0)) break; /*16,0,30,0*/ if (rup(N,11,1,3,0)) break; /*11,5,30,0*/ if (rup(N,6,2,3,0)) break; /*6,10,30,0*/ if (rup(N,1,3,3,0)) break; /*1,15,30,0*/ if (rup(N,6,0,4,0)) break; /*6,0,40,0*/ if (rup(N,1,1,4,0)) break; /*1,5,40,0*/ if (rup(N,21,0,0,1)) break; /*21,0,0,25*/ if (rup(N,16,1,0,1)) break; /*16,5,0,25*/ if (rup(N,11,2,0,1)) break; /*11,10,0,25*/ if (rup(N,6,3,0,1)) break; /*6,15,0,25*/ if (rup(N,1,4,0,1)) break; /*1,20,0,25*/ if (rup(N,11,0,1,1)) break; /*11,0,10,25*/ if (rup(N,6,1,1,1)) break; /*6,5,10,25*/ if (rup(N,1,2,1,1)) break; /*1,10,10,25*/ if (rup(N,1,0,2,1)) break; /*1,0,20,25*/ break;case 47: if (rup(N,47,0,0,0)) break; /*47,0,0,0*/ if (rup(N,42,1,0,0)) break; /*42,5,0,0*/ if (rup(N,37,2,0,0)) break; /*37,10,0,0*/ if (rup(N,32,3,0,0)) break; /*32,15,0,0*/ if (rup(N,27,4,0,0)) break; /*27,20,0,0*/ if (rup(N,22,5,0,0)) break; /*22,25,0,0*/ if (rup(N,17,6,0,0)) break; /*17,30,0,0*/ if (rup(N,12,7,0,0)) break; /*12,35,0,0*/ if (rup(N,7,8,0,0)) break; /*7,40,0,0*/ if (rup(N,2,9,0,0)) break; /*2,45,0,0*/ if (rup(N,37,0,1,0)) break; /*37,0,10,0*/ if (rup(N,32,1,1,0)) break; /*32,5,10,0*/ if (rup(N,27,2,1,0)) break; /*27,10,10,0*/ if (rup(N,22,3,1,0)) break; /*22,15,10,0*/ if (rup(N,17,4,1,0)) break; /*17,20,10,0*/ if (rup(N,12,5,1,0)) break; /*12,25,10,0*/ if (rup(N,7,6,1,0)) break; /*7,30,10,0*/ if (rup(N,2,7,1,0)) break; /*2,35,10,0*/ if (rup(N,27,0,2,0)) break; /*27,0,20,0*/ if (rup(N,22,1,2,0)) break; /*22,5,20,0*/ if (rup(N,17,2,2,0)) break; /*17,10,20,0*/ if (rup(N,12,3,2,0)) break; /*12,15,20,0*/ if (rup(N,7,4,2,0)) break; /*7,20,20,0*/ if (rup(N,2,5,2,0)) break; /*2,25,20,0*/ if (rup(N,17,0,3,0)) break; /*17,0,30,0*/ if (rup(N,12,1,3,0)) break; /*12,5,30,0*/ if (rup(N,7,2,3,0)) break; /*7,10,30,0*/ if (rup(N,2,3,3,0)) break; /*2,15,30,0*/ if (rup(N,7,0,4,0)) break; /*7,0,40,0*/ if (rup(N,2,1,4,0)) break; /*2,5,40,0*/ if (rup(N,22,0,0,1)) break; /*22,0,0,25*/ if (rup(N,17,1,0,1)) break; /*17,5,0,25*/ if (rup(N,12,2,0,1)) break; /*12,10,0,25*/ if (rup(N,7,3,0,1)) break; /*7,15,0,25*/ if (rup(N,2,4,0,1)) break; /*2,20,0,25*/ if (rup(N,12,0,1,1)) break; /*12,0,10,25*/ if (rup(N,7,1,1,1)) break; /*7,5,10,25*/ if (rup(N,2,2,1,1)) break; /*2,10,10,25*/ if (rup(N,2,0,2,1)) break; /*2,0,20,25*/ break;case 48: if (rup(N,48,0,0,0)) break; /*48,0,0,0*/ if (rup(N,43,1,0,0)) break; /*43,5,0,0*/ if (rup(N,38,2,0,0)) break; /*38,10,0,0*/ if (rup(N,33,3,0,0)) break; /*33,15,0,0*/ if (rup(N,28,4,0,0)) break; /*28,20,0,0*/ if (rup(N,23,5,0,0)) break; /*23,25,0,0*/ if (rup(N,18,6,0,0)) break; /*18,30,0,0*/ if (rup(N,13,7,0,0)) break; /*13,35,0,0*/ if (rup(N,8,8,0,0)) break; /*8,40,0,0*/ if (rup(N,3,9,0,0)) break; /*3,45,0,0*/ if (rup(N,38,0,1,0)) break; /*38,0,10,0*/ if (rup(N,33,1,1,0)) break; /*33,5,10,0*/ if (rup(N,28,2,1,0)) break; /*28,10,10,0*/ if (rup(N,23,3,1,0)) break; /*23,15,10,0*/ if (rup(N,18,4,1,0)) break; /*18,20,10,0*/ if (rup(N,13,5,1,0)) break; /*13,25,10,0*/ if (rup(N,8,6,1,0)) break; /*8,30,10,0*/ if (rup(N,3,7,1,0)) break; /*3,35,10,0*/ if (rup(N,28,0,2,0)) break; /*28,0,20,0*/ if (rup(N,23,1,2,0)) break; /*23,5,20,0*/ if (rup(N,18,2,2,0)) break; /*18,10,20,0*/ if (rup(N,13,3,2,0)) break; /*13,15,20,0*/ if (rup(N,8,4,2,0)) break; /*8,20,20,0*/ if (rup(N,3,5,2,0)) break; /*3,25,20,0*/ if (rup(N,18,0,3,0)) break; /*18,0,30,0*/ if (rup(N,13,1,3,0)) break; /*13,5,30,0*/ if (rup(N,8,2,3,0)) break; /*8,10,30,0*/ if (rup(N,3,3,3,0)) break; /*3,15,30,0*/ if (rup(N,8,0,4,0)) break; /*8,0,40,0*/ if (rup(N,3,1,4,0)) break; /*3,5,40,0*/ if (rup(N,23,0,0,1)) break; /*23,0,0,25*/ if (rup(N,18,1,0,1)) break; /*18,5,0,25*/ if (rup(N,13,2,0,1)) break; /*13,10,0,25*/ if (rup(N,8,3,0,1)) break; /*8,15,0,25*/ if (rup(N,3,4,0,1)) break; /*3,20,0,25*/ if (rup(N,13,0,1,1)) break; /*13,0,10,25*/ if (rup(N,8,1,1,1)) break; /*8,5,10,25*/ if (rup(N,3,2,1,1)) break; /*3,10,10,25*/ if (rup(N,3,0,2,1)) break; /*3,0,20,25*/ break;case 49: if (rup(N,49,0,0,0)) break; /*49,0,0,0*/ if (rup(N,44,1,0,0)) break; /*44,5,0,0*/ if (rup(N,39,2,0,0)) break; /*39,10,0,0*/ if (rup(N,34,3,0,0)) break; /*34,15,0,0*/ if (rup(N,29,4,0,0)) break; /*29,20,0,0*/ if (rup(N,24,5,0,0)) break; /*24,25,0,0*/ if (rup(N,19,6,0,0)) break; /*19,30,0,0*/ if (rup(N,14,7,0,0)) break; /*14,35,0,0*/ if (rup(N,9,8,0,0)) break; /*9,40,0,0*/ if (rup(N,4,9,0,0)) break; /*4,45,0,0*/ if (rup(N,39,0,1,0)) break; /*39,0,10,0*/ if (rup(N,34,1,1,0)) break; /*34,5,10,0*/ if (rup(N,29,2,1,0)) break; /*29,10,10,0*/ if (rup(N,24,3,1,0)) break; /*24,15,10,0*/ if (rup(N,19,4,1,0)) break; /*19,20,10,0*/ if (rup(N,14,5,1,0)) break; /*14,25,10,0*/ if (rup(N,9,6,1,0)) break; /*9,30,10,0*/ if (rup(N,4,7,1,0)) break; /*4,35,10,0*/ if (rup(N,29,0,2,0)) break; /*29,0,20,0*/ if (rup(N,24,1,2,0)) break; /*24,5,20,0*/ if (rup(N,19,2,2,0)) break; /*19,10,20,0*/ if (rup(N,14,3,2,0)) break; /*14,15,20,0*/ if (rup(N,9,4,2,0)) break; /*9,20,20,0*/ if (rup(N,4,5,2,0)) break; /*4,25,20,0*/ if (rup(N,19,0,3,0)) break; /*19,0,30,0*/ if (rup(N,14,1,3,0)) break; /*14,5,30,0*/ if (rup(N,9,2,3,0)) break; /*9,10,30,0*/ if (rup(N,4,3,3,0)) break; /*4,15,30,0*/ if (rup(N,9,0,4,0)) break; /*9,0,40,0*/ if (rup(N,4,1,4,0)) break; /*4,5,40,0*/ if (rup(N,24,0,0,1)) break; /*24,0,0,25*/ if (rup(N,19,1,0,1)) break; /*19,5,0,25*/ if (rup(N,14,2,0,1)) break; /*14,10,0,25*/ if (rup(N,9,3,0,1)) break; /*9,15,0,25*/ if (rup(N,4,4,0,1)) break; /*4,20,0,25*/ if (rup(N,14,0,1,1)) break; /*14,0,10,25*/ if (rup(N,9,1,1,1)) break; /*9,5,10,25*/ if (rup(N,4,2,1,1)) break; /*4,10,10,25*/ if (rup(N,4,0,2,1)) break; /*4,0,20,25*/ break;} return (*N%50)==0; } int waste(int *N) { /*throw in as much coins as possible respecting the layout*/ while (1) { if (rup(N,50,0,0,0)) break; /*50,0,0,0*/ if (rup(N,45,1,0,0)) break; /*45,5,0,0*/ if (rup(N,40,2,0,0)) break; /*40,10,0,0*/ if (rup(N,35,3,0,0)) break; /*35,15,0,0*/ if (rup(N,30,4,0,0)) break; /*30,20,0,0*/ if (rup(N,25,5,0,0)) break; /*25,25,0,0*/ if (rup(N,20,6,0,0)) break; /*20,30,0,0*/ if (rup(N,15,7,0,0)) break; /*15,35,0,0*/ if (rup(N,10,8,0,0)) break; /*10,40,0,0*/ if (rup(N,5,9,0,0)) break; /*5,45,0,0*/ if (rup(N,0,10,0,0)) break; /*0,50,0,0*/ if (rup(N,40,0,1,0)) break; /*40,0,10,0*/ if (rup(N,35,1,1,0)) break; /*35,5,10,0*/ if (rup(N,30,2,1,0)) break; /*30,10,10,0*/ if (rup(N,25,3,1,0)) break; /*25,15,10,0*/ if (rup(N,20,4,1,0)) break; /*20,20,10,0*/ if (rup(N,15,5,1,0)) break; /*15,25,10,0*/ if (rup(N,10,6,1,0)) break; /*10,30,10,0*/ if (rup(N,5,7,1,0)) break; /*5,35,10,0*/ if (rup(N,0,8,1,0)) break; /*0,40,10,0*/ if (rup(N,30,0,2,0)) break; /*30,0,20,0*/ if (rup(N,25,1,2,0)) break; /*25,5,20,0*/ if (rup(N,20,2,2,0)) break; /*20,10,20,0*/ if (rup(N,15,3,2,0)) break; /*15,15,20,0*/ if (rup(N,10,4,2,0)) break; /*10,20,20,0*/ if (rup(N,5,5,2,0)) break; /*5,25,20,0*/ if (rup(N,0,6,2,0)) break; /*0,30,20,0*/ if (rup(N,20,0,3,0)) break; /*20,0,30,0*/ if (rup(N,15,1,3,0)) break; /*15,5,30,0*/ if (rup(N,10,2,3,0)) break; /*10,10,30,0*/ if (rup(N,5,3,3,0)) break; /*5,15,30,0*/ if (rup(N,0,4,3,0)) break; /*0,20,30,0*/ if (rup(N,10,0,4,0)) break; /*10,0,40,0*/ if (rup(N,5,1,4,0)) break; /*5,5,40,0*/ if (rup(N,0,2,4,0)) break; /*0,10,40,0*/ if (rup(N,0,0,5,0)) break; /*0,0,50,0*/ if (rup(N,25,0,0,1)) break; /*25,0,0,25*/ if (rup(N,20,1,0,1)) break; /*20,5,0,25*/ if (rup(N,15,2,0,1)) break; /*15,10,0,25*/ if (rup(N,10,3,0,1)) break; /*10,15,0,25*/ if (rup(N,5,4,0,1)) break; /*5,20,0,25*/ if (rup(N,0,5,0,1)) break; /*0,25,0,25*/ if (rup(N,15,0,1,1)) break; /*15,0,10,25*/ if (rup(N,10,1,1,1)) break; /*10,5,10,25*/ if (rup(N,5,2,1,1)) break; /*5,10,10,25*/ if (rup(N,0,3,1,1)) break; /*0,15,10,25*/ if (rup(N,5,0,2,1)) break; /*5,0,20,25*/ if (rup(N,0,1,2,1)) break; /*0,5,20,25*/ if (rup(N,0,0,0,2)) break; /*0,0,0,50*/ D(printf("[unable (N=%d)]\n",*N)); return 0; /*UNABLE*/ } return 1; /*OK*/ } int upd(int *ca, int *cb, int *pa, int *pb, int va, int vb, int mula, int mulb) { int payb = *pb/mulb; int havea = *ca/mula; int min = (havea < payb) ? havea:payb; D(printf("[ before using: %d of %d (%d), %d of %d (%d)]\n", *pa, *pa+*ca, va, *pb, *pb+*cb, vb)); *pa += min * mula; *pb -= min * mulb; *ca -= min * mula; *cb += min * mulb; D(printf("[ AFTER using: %d of %d (%d), %d of %d (%d), moved %d]\n", *pa, *pa+*ca, va, *pb, *pb+*cb, vb, min)); return min; } int main(void) { int N; while (1) { int bad = 0; scanf("%d %d %d %d %d", &N, &c1,&c5,&c10,&c25); D(printf("[SCANNED: %d %d %d %d %d]\n", N,c1,c5,c10,c25)); if (!(N|c1|c5|c10|c25)) break; /*done*/ p1=p5=p10=p25=0; MM = 1; /*for rup*/ if (!roundup(&N)) bad = 1; else { MM = N / 50; while (MM > 0) { D(printf("wasting N=%d, 1:%d, 5:%d, 10:%d, 25:%d with %d\n",N,c1,c5,c10,c25,MM)); if (!waste(&N)) MM = MM/2; /* if wasted OK, try again */ if (N == 0) break; /* done */ } if (N == 0) { int moved; do { moved = 0; /* now try to pay some bigger with smaller.. */ moved += upd(&c10,&c25,&p10,&p25,10,25,5,2); moved += upd(&c5,&c25,&p5,&p25,5,25,5,1); moved += upd(&c5,&c10,&p5,&p10,5,10,2,1); moved += upd(&c1,&c5,&p1,&p5,1,5,5,1); } while (moved); printf("Throw in %d cents, %d nickels, %d dimes, and %d quarters.\n", p1, p5, p10, p25); } else bad = 1; } if (bad) { printf("Charlie cannot buy coffee.\n"); } } return 0; }