Cod sursa(job #1098925)

Utilizator StanAndreiAndrei Stan StanAndrei Data 5 februarie 2014 12:33:43
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.88 kb
#include <stdio.h>

#define NMAX 1005

using namespace std;

int A[NMAX][NMAX],T[NMAX],N,M,SOL;
bool STATUS[NMAX];

void read()
{
    scanf("%d %d\n",&N,&M);

    for (int i=0;i<N;i++) scanf("%d ",&STATUS[i]);
    int c;
    for (int i=1;i<=M;i++)
    {
        scanf("%d ",&c);
        scanf("%d ",&T[c]);
        scanf("%d ",&A[c][0]);
        for (int j=1;j<=A[c][0];j++) scanf("%d ",&A[c][j]);
    }
}

void solve()
{
    for (int i=0;i<N;i++)
        if (!STATUS[i])
        {
            for (int j=1;j<=A[i][0];j++)
                if (STATUS[A[i][j]]) STATUS[A[i][j]]=0;
                else STATUS[A[i][j]]=1;
            SOL+=T[i];
        }
    printf("%d\n",SOL);
}

int main()
{
    freopen ("aprindere.in","r",stdin);
    freopen ("aprindere.out","w",stdout);

    read();
    solve();

    fclose(stdin);
    fclose(stdout);
    return 0;
}