Cod sursa(job #2482336)

Utilizator Teo_1101Mititelu Teodor Teo_1101 Data 28 octombrie 2019 09:33:57
Problema Aprindere Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <iostream>
#include <fstream>

using namespace std;

const int NMAX = 1001;

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


int N, M;
int v[NMAX];

struct intrerupator
{
    int t;
    int nrl = -1;
    int l[NMAX];
};

intrerupator C[NMAX];

void INV( int & x )
{
    if( x == 1 ) x = 0;
    else x = 1;
}
void Read()
{
    fin >> N >> M;

    for( int i = 0; i < N; ++i )
        fin >> v[i];

    int x, nr, tm;
    for( int i = 1; i <= M; ++i )
    {
        fin >> x >> tm >> nr;
        C[x].t = tm;
        C[x].nrl = nr;
        for( int i = 1; i <= nr; ++i )
            fin >> C[x].l[i];
    }
    int Cost = 0;

    for( int i = 0; i < N; ++i )
    {
        //for( int i = 0; i < N; ++i )fout << v[i] << ' ';fout << '\n';

        if( C[i].nrl != -1 )
        {
            if( v[i] == 0 )
            {
                Cost += C[i].t;
                for( int j = 1; j <= C[i].nrl; ++j )
                    INV( v[C[i].l[j]] );
            }
        }
    }

    fout << Cost;
}
int main()
{
    Read();
    return 0;
}