Cod sursa(job #1363095)

Utilizator laurageorgescuLaura Georgescu laurageorgescu Data 26 februarie 2015 18:20:14
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<fstream>
#include<vector>

using namespace std;

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

const int nmax = 1000;
bool a[ nmax + 1 ];
int t[ nmax + 1 ];
vector <int> v[ nmax + 1 ];

int main() {
    int n, m, x, p, k;
    fin >> n >> m;
    for( int i = 0; i < n; ++ i ) {
        fin >> a[ i ];
    }
    for( int i = 0; i < m; ++ i ) {
        fin >> x; fin >> t[ x ] >> p;
        for( int j = 0; j < p; ++ j ) {
            fin >> k;
            v[ x ].push_back( k );
        }
    }
    int ans = 0;
    for( int i = 0; i < n; ++ i ) {
        if ( a[ i ] == 0 ) {
            ans += t[ i ];
            for( int j = 0; j < ( int )v[ i ].size(); ++ j ) {
                a[ v[ i ][ j ] ] = !a[ v[ i ][ j ] ];
            }
        }
    }
    fout << ans << "\n";
    fin.close();
    fout.close();
    return 0;
}