#include<iostream> #include<vector> #include<algorithm> #include<cmath> #define db(a) cout << #a << " = " << a << endl; #includeusing namespace std; int main(){ int n, m, c; int cont = 1; //freopen("in.in", "r", stdin); //freopen("ou.out", "w", stdout); while(cin >> n >> m >> c){ if(n == 0 && m == 0 && c == 0) break; vector estado(n + 1, false); vector consumo(n + 1, 0); for(int i = 1; i <= n; i++){ cin >> consumo[i]; } int maxi = 0; int id = 0; int res = 0; bool blown = false; for(int i = 1; i <= m && !blown; i++){ cin >> id; if(estado[id]){ maxi -= consumo[id]; estado[id] = false; } else{ maxi += consumo[id]; if(maxi > c) { blown = true; for(int r = i + 1; r <= m; r++) cin >> id; } estado[id] = true; res = max(res, maxi); } } cout << "Sequence " << cont++ << endl; if(!blown) { cout << "Fuse was not blown." << endl; cout << "Maximal power consumption was " << res << " amperes." << endl << endl; } else{ cout << "Fuse was blown." << endl << endl; } } return 0; }
lunes, 24 de octubre de 2011
661 - Blowing Fuses - UVA
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario