Cod sursa(job #485653)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 19 septembrie 2010 00:15:02
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<cstdio>
#include<vector>
#define N 1<<10
using namespace std;
int n,m,x,v[N],cost[N];
vector<int> list[N];
void read()
{
    int c,co,nr,x;
    freopen("aprindere.in","r",stdin);
    freopen("aprindere.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(int i=0;i<n;i++)
        scanf("%d",&v[i]);
    for(int i=1;i<=m;i++)
    {
        scanf("%d%d%d",&c,&co,&nr);
        cost[c]=co;
        for(int j=1;j<=nr;j++)
        {
            scanf("%d",&x);
            list[c].push_back(x);
        }
    }
}
void solve()
{
    int ct=0;
    for(int i=0;i<n;i++)
        if(v[i]==0)
        {
            ct+=cost[i];
            for(vector<int>::iterator it=list[i].begin();it!=list[i].end();it++)
                v[*it]=1-v[*it];
        }
    printf("%d",ct);
}
int main()
{
    read();
    solve();
    return 0;
}