#include #include #include #include #include int strom[50]; int ein[50]; int gesamt = 0; int max = 0; int num_dev;// anz. geräte int num_ops; // anz. ops int fuse_pwr; // max. amp. void init() { for(int i = 0; i < 50; i++) { strom[i] = 0; ein[i] = 0; } max = 0; gesamt = 0; } int Read(istream& in) { in >> num_dev; in >> num_ops; in >> fuse_pwr; //cout << "Zahl dev = " << num_dev << " num_ops = " << num_ops << " fuse pwr = " << fuse_pwr << "\n"; return !(num_dev == 0 && num_ops == 0 && fuse_pwr == 0); } int main() { ifstream in("fuses.in"); int op; init(); int sequence = 1; while(Read(in)) { init(); cout << "Sequence " << sequence++ << "\n";; int is_ok = 1; for(int i = 0; i < num_dev; i++) { in >> strom[i]; } for(int i = 0; i < num_ops; i++) { in >> op; op--; if(ein[op] == 0) { //cout << (op + 1) << " eingech. "; gesamt += strom[op]; ein[op] = 1; if(gesamt > fuse_pwr) is_ok = 0; if(gesamt > max) max = gesamt; //cout << " str = " << gesamt << "\n"; } else { ein[op] = 0; //cout << (op + 1) << " ausg.\n"; gesamt -= strom[op]; //cout << " str = " << gesamt << "\n"; } } if(is_ok) { cout << "Fuse was not blown.\nMaximal power consumption was "; cout << max << " amperes.\n\n"; } else { cout << "Fuse was blown.\n\n"; } } return 0; }