Cod sursa(job #1067179)

Utilizator cdascaluDascalu Cristian cdascalu Data 26 decembrie 2013 14:48:19
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <cstdio>
#include <algorithm>
#include <fstream>
#include <iostream>
#include <vector>
#include <queue>
#include <map>
#include <cstring>
#include <string>
#include <set>
#include <stack>
#include <unordered_map>
#include <bitset>
#define Nmax 1001
using namespace std;

bitset<Nmax> viz;
vector<int> G[Nmax];
int cost[Nmax];
int N,M;
int main()
{
    freopen("aprindere.in","r", stdin);
    freopen("aprindere.out","w", stdout);
    cin>>N>>M;
    int x,C,NR,sol = 0;
    for(int i=0;i<N;++i)
    {
        cin>>x;
        viz[i] = x;
    }
    for(int i=1;i<=M;++i)
    {
        cin>>C>>x>>NR;
        cost[C] = x;
        while(NR--)
        {
            cin>>x;
            G[C].push_back(x);
        }
    }
    for(int i=0;i<N;++i)
    {
        if(viz[i] == true)
            continue;
        sol += cost[i];
        for(int j=0;j<G[i].size();++j)
            viz[G[i][j]] = !viz[G[i][j]];
    }
    cout<<sol<<"\n";
    return 0;
}