Cod sursa(job #2012403)

Utilizator caesar2001Stoica Alexandru caesar2001 Data 18 august 2017 17:43:27
Problema Aprindere Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#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];

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",&c[x].t,&c[x].nr);
        for(int j = 1;j <= c[x].nr;j ++)
            fscanf(in,"%d",&c[i].v[j]);
    }
    int rez = 0;
    for(int i = 1;i <= n;i ++)
    {
        if(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;
}