Cod sursa(job #423424)

Utilizator SpiderManSimoiu Robert SpiderMan Data 23 martie 2010 20:58:41
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <cstdio>

#define hg 8912

int v[1005],sol[1005][1005];
int n, m, sum, c, tc, nrc, poz, x;
char ch[hg];

inline void cit (int &x)
{
    x = 0;
    if (ch[0]=='\0') fread (ch, 1, hg, stdin);
    else while (ch[poz] < '0' || ch[poz] > '9')
            if (++poz == hg)
                fread (ch, 1, hg, stdin), poz = 0;

    while (ch[poz] >= '0' && ch[poz] <= '9')
    {
        x = x * 10 + ch[poz] - '0';
        if (++poz == hg)
            fread (ch, 1, hg, stdin), poz = 0;
    }
}
int main ()
{
	freopen ("aprindere.in","r",stdin);
	freopen ("aprindere.out","w",stdout);
    int i, j;
    cit(n),cit(m);
    for (i = 0; i < n; i++)
    {
        cit(v[i]);
        if (v[i] == 0)
            --v[i];
    }
    for (i = 1; i <= m; i++)
    {
        cit(c),cit(tc),cit(nrc);
		sol[c][0]=tc;
		sol[c][1]=nrc;
		for (j = 2; j <= nrc+1; j++)
			cit(sol[c][j]);
	}
	for (i = 0; i < n; i++)
		if (v[i] == -1)
		{
			sum += sol[i][0];
			for (j=2; j<=sol[i][1]+1; ++j)
				v[sol[i][j]]=-v[sol[i][j]];
		}
	printf ("%d",sum);
    return 0;
}