Pagini recente » Cod sursa (job #2230206) | Cod sursa (job #687779) | Cod sursa (job #1815438) | Cod sursa (job #611743) | Cod sursa (job #975869)
Cod sursa(job #975869)
#include<fstream>
using namespace std;
ifstream f("aprindere.in"); ofstream g("aprindere.out");
int n,m,T,v[1001];
int main ()
{ f>>n>>m;
int i,j;
for(i=0;i<n;++i) f>>v[i];
for(i=1;i<=m;++i)
{ int c,tc,nrc,x;
f>>c>>tc>>nrc;
if(!v[c])
{ T+=tc;
for(j=1;j<=nrc;++j) f>>x,v[x]^=1;
}
else for(j=1;j<=nrc;++j) f>>x;
}
g<<T<<'\n'; g.close(); return 0;
}
/*
Se pot afla usor intrerupatoarele care trebuie actionate astfel: se parcurg camerele de la stanga la dreapta,
iar in momentul in care ajungem la o camera cu becul inchis trebuie sa actionam intrerupatorul din camera respectiva
(daca nu exista intrerupator, atunci nu avem solutie). Cum intrerupatorul respectiv actioneaza becuri din camere >= i,
nu vom modifica nimic din becurile precedente. De asemenea, vom aduna costul lor la rezultat.
*/