Cod sursa(job #876896)

Utilizator vendettaSalajan Razvan vendetta Data 12 februarie 2013 11:51:42
Problema Aprindere Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>

using namespace std;

#define nmax 1005

ifstream f("aprindere.in");
ofstream g("aprindere.out");

int n, m, viz[nmax], T[nmax];
vector<int> lista[nmax];

int main(){
    f >> n >> m;
    int x, y;
    for(int i=0; i<n; ++i) f >> viz[i];
    for(int i=1; i<=m; ++i){
        f >> x; f >> T[x]; f >> x;
        for(int j=1; j<=x; ++j) f >> y, lista[x].push_back(y);
    }
    int Cost = 0;
    for(int i=0; i<n; ++i){
        if (viz[i] == 1) continue;// nu are sens sa il apas
        Cost += T[i];
        for(int j=0; j<lista[i].size(); ++j){
            viz[ lista[i][j] ] = 1 - viz[ lista[i][j] ];
        }
    }
    cout << Cost << "\n";
    g << Cost << "\n";
}