#include int devices [20]; int numDev; int encendido [20]; int numOps; int maxConsumible; int maxConsumido; int curConsumido; int main (void) { FILE *fd; int cont; int cual; int mal; int contProb = 1; fd = fopen ("fuses.in", "r"); fscanf (fd, "%d %d %d\n", &numDev, &numOps, &maxConsumible); while (numDev || numOps || maxConsumible) { maxConsumido = 0; curConsumido = 0; mal = 0; for (cont = 0; cont < numDev; cont ++) { fscanf (fd, "%d\n", &devices [cont]); encendido [cont] = 0; } for (cont = 0; cont < numOps; cont ++) { fscanf (fd, "%d\n", &cual); cual--; if (encendido [cual]) { encendido [cual] = 0; curConsumido -= devices [cual]; } else { encendido [cual] = 1; curConsumido += devices [cual]; if (curConsumido > maxConsumible) mal = 1; if (curConsumido > maxConsumido) maxConsumido = curConsumido; } } printf ("Sequence %d\n", contProb++); if (mal) { printf ("Fuse was blown.\n\n"); } else { printf ("Fuse was not blown.\n"); printf ("Maximal power consumption was %d amperes.\n\n", maxConsumido); } fscanf (fd, "%d %d %d\n", &numDev, &numOps, &maxConsumible); } fclose (fd); return 0; }