Pagini recente » Cod sursa (job #2012654) | Cod sursa (job #1883952) | Cod sursa (job #2686879) | Cod sursa (job #222717) | Cod sursa (job #2012413)
#include <cstdio>
using namespace std;
FILE *in,*out;
const int nrmax = 100;
const int nmax = 1000;
struct room
{
int s,t,nr,v[nrmax+1];
}c[1+nmax];
bool check[1+nmax];
int main()
{
in = fopen("aprindere.in","r");
out = fopen("aprindere.out","w");
int n,m;
fscanf(in,"%d %d",&n,&m);
for(int i = 1;i <= n;i ++)
fscanf(in,"%d",&c[i].s);
for(int i = 1;i <= m;i ++)
{
int x;
fscanf(in,"%d",&x);
x ++;
fscanf(in,"%d %d",&c[x].t,&c[x].nr);
for(int j = 1;j <= c[x].nr;j ++){
fscanf(in,"%d",&c[i].v[j]);
c[i].v[j] ++;
}
check[x] = 1;
}
int rez = 0;
for(int i = 1;i <= n;i ++)
{
if(check[i] == 1 && c[i].s == 0)
{
rez += c[i].t;
for(int j = 1;j <= c[i].nr;j ++)
c[c[i].v[j]].s = 1 - c[c[i].v[j]].s;
}
}
fprintf(out,"%d",rez);
return 0;
}