Cod sursa(job #1466375)

Utilizator dyanagGrigore Diana dyanag Data 29 iulie 2015 00:55:47
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>
#include<algorithm>
#include<vector>
using namespace std;

FILE *f=fopen("aprindere.in", "r");
FILE *g=fopen("aprindere.out", "w");

int cate, a[1010][110], si[1010];

void aprindere(int nr){
    for(int i=1; i<=a[nr][1]; ++i)
        si[a[nr][i+1]]=(si[a[nr][i+1]]+1)%2;
    cate+=a[nr][0];
}

int main()
{
    int n, m, nr;
    fscanf(f, "%d%d", &n, &m);
    for(int i=1; i<=n; ++i)
        fscanf(f, "%d", &si[i]);
    for(int i=1; i<=m; ++i){
        fscanf(f, "%d", &nr);
        ++nr;
        fscanf(f, "%d%d", &a[nr][0], &a[nr][1]);
        //a[0]=timp necesar
        //a[1]=numar de alte camere
        for(int j=1; j<=a[nr][1]; ++j){
            fscanf(f, "%d", &a[nr][j+1]);
            ++a[nr][j+1];
        }
    }
    for(int i=1; i<=n; ++i)
        if(si[i]==0)
            aprindere(i);
    fprintf(g, "%d", cate);
return 0;
}