Cod sursa(job #2565526)

Utilizator memecoinMeme Coin memecoin Data 2 martie 2020 14:42:37
Problema Aprindere Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <fstream>
#include <iomanip>
#include <string>
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <math.h>
#include <set>
#include <map>
#include <string.h>
#include <queue>
#include <stack>

#define INF 0x3f3f3f3f

using namespace std;

#ifdef DEBUG
string name = "data";
#else
string name = "aprindere";
#endif

ifstream fin(name + ".in");
ofstream fout(name + ".out");

#define MAXN 1024

bool state[MAXN];
int n;
int m;
vector<int> intrerupatoare[MAXN];
int cost[MAXN];

int main() {
    
    fin >> n >> m;
    
    for (int i = 0; i < n; ++i) {
        fin >> state[i];
    }
    
    for (int i = 0; i < m; ++i) {
        int c;
        int cnt;
        int cst;
        fin >> c >> cst >> cnt;
        cost[c] = cst;
        for (int j = 0; j < cnt; ++j) {
            int x;
            fin >> x;
            intrerupatoare[c].push_back(x);
        }
    }
    
    int res = 0;
    
    for (int i = 0; i < n; ++i) {
        if (!state[i]) {
            res += cost[i];
            for (auto x: intrerupatoare[i]) {
                state[x] = !state[x];
            }
        }
    }
    
    fout << res;
    
    return 0;
}