#include #include #include #define LINELENGTH 1024 int str2ints(char * string, int ** ints, int * intslength) { int slength; char separator; int * tempints; int tempintslength; int i; int j; int lasti; separator = ' '; slength = strlen(string); tempintslength = 0; j = 0; lasti = 0; for (i = 0; i != slength; i++) { if (string[i] == separator) { tempintslength++; string[i] = 0; } } tempintslength++; /*separotor + 1*/ tempints = (int*) malloc(tempintslength * sizeof(*tempints)); /*printf("*%d*",tempintslength);*/ for (i = 0; i != slength; i++) { if (string[i] == 0) { tempints[j] = atoi(string + lasti); lasti = lasti + (i-lasti) + 1; j++; } } /*printf("*%d*",lasti);*/ tempints[j] = atoi(string + lasti); *ints = tempints; *intslength = tempintslength; return (0); } int main() { char line[LINELENGTH]; int * ints; int intslength; int i; int j; int jmax; int dny; int pp; int ppz; int * ceny; int cenylength; int akcieks; int max; int cenaprod; while(!feof(stdin)) { fgets(line,LINELENGTH,stdin); str2ints(line,&ints,&intslength); if ((intslength == 1) && (ints[0] == 0)) { break;(core dumped) } dny = ints[0]; pp = ints[1]; fgets(line,LINELENGTH,stdin); str2ints(line,&ceny,&cenylength); jmax = cenylength - 1; max = 0; for (j = 0; j != jmax; j++) { akcieks = pp / ceny[j]; ppz = pp - akcieks * ceny[j]; for (i = j+1; i != cenylength; i++) { cenaprod = ceny[i] * akcieks; if ((cenaprod + ppz - pp) > max) { max = cenaprod + ppz - pp; } } } printf("%d\n",max); /* printf("pp %d\n",pp); printf("cl %d\n",cenylength);*/ /*printf("length: %d lastchar: %c \n",strlen(line),line[strlen(line)-1]);*/ } return (0); }