Cod sursa(job #1074138)

Utilizator R.A.RFMI Romila Remus Arthur R.A.R Data 7 ianuarie 2014 10:43:10
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.86 kb
#include <fstream>
#include <vector>

using namespace std;

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

const int NMAX = 1001;

int N, M;
bool state[NMAX];
int switches[NMAX], swtime[NMAX];

vector<int> roomSwitched[NMAX];

int main()
{
    int i, room, totalTime = 0;

    in >> N >> M;

    for(i = 0; i < N; i++)
        in >> state[i];

    for(i = 0; i < M; i++){
        in >> room;
        in >> swtime[room] >> switches[room];

        for(int j = 0, val; j < switches[room]; j++){

            in >> val;
            roomSwitched[room].push_back(val);
        }
    }

    for(i = 0; i < N; i++){
        if(state[i] == 0){//powered off
            totalTime += swtime[i];

            for(room = 0; room < switches[i]; room++)
                state[roomSwitched[i][room]] ^= true;
        }
    }

    out << totalTime << '\n';

    return 0;
}