#include #include #include #include #include #include #define D 0 #if D #define _V(_vna, _prf) printf("%s: %"#_prf" (L %d)\n", #_vna, _vna, __LINE__) #else #define _V(_, __) #endif int main(C) { int i, j, k, ger, schal, kap; int an[25], gk[25], ges, max; FILE *f=fopen("fuses.in","r"); while(fscanf(f," %d %d %d", &ger, &schal, &kap),ger||schal||kap) { _V(ger, d); _V(schal, d); _V(kap, d); ges = 0; for (i = 0; i < ger; an[i++] = 0); for (i = 0; i < ger; i++) fscanf(f, "%d", &gk[i]); max = 0; for (i = 0; i < schal; i++) { int neu; fscanf(f, "%d", &neu); neu--; _V(neu, d); _V(gk[neu], d); _V(an[neu],d); if (an[neu]) ges -= gk[neu]; else ges += gk[neu]; _V(ges, d); an[neu] = !an[neu]; if (ges > max) max = ges; } printf("Sequence %d\nFuse was ", C++); if (max > kap) printf("blown.\n\n"); else printf("not blown.\nMaximal power consumption was %d amperes.\n\n",max); } return 0; }