Cod sursa(job #1278845)

Utilizator felixiPuscasu Felix felixi Data 29 noiembrie 2014 14:43:53
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <vector>

using namespace std;

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

const int NMAX = 1000;

vector <int> p[NMAX+1];
bool v[NMAX+1];
int N,K, R= 0;
int t[NMAX+1];

void citire() {
    in >> N >> K;
    for( int i= 0;  i<N;  ++i )  in >> v[i];
    for( int i= 1;  i<=K;  ++i ) {
        int nr, a, cam;
        in >> cam;
        in >> t[cam] >> nr;
        for( int j= 1;  j<=nr;  ++j ) {
            in >> a;
            p[cam].push_back( a );
        }
    }
}

void parcurge() {
    for( int i= 0;  i<N;  ++i ) {
        if( !v[i] ) {
            R+= t[i];
            for( int j= 0;  j<(int)p[i].size();  ++j )  v[ p[i][j] ]= 1 - v[ p[i][j] ];
        }
    }
}

void afiseaza() {
    out << R << '\n';
}

int main() {
    citire();
    parcurge();
    afiseaza();
    return 0;
}