Cod sursa(job #3331540)

Utilizator Sivusivu luca Sivu Data 28 decembrie 2025 23:18:16
Problema Aprindere Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <bits/stdc++.h>
using namespace std;

struct SwitchInfo {
    bool exists = false;   // există întrerupător în camera asta?
    int t = 0;             // timpul de apăsare
    int nr = 0;            // câte camere modifică
    int c[105];            // lista camerelor modificate (nr <= 100)
};

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

    int n, m;
    fin >> n >> m;

    int a[1001];
    for (int i = 0; i < n; i++) fin >> a[i];

    SwitchInfo sw[1001];

    for (int k = 0; k < m; k++) {
        int C, T, NRC;
        fin >> C >> T >> NRC;

        sw[C].exists = true;
        sw[C].t = T;
        sw[C].nr = NRC;

        for (int j = 0; j < NRC; j++) {
            fin >> sw[C].c[j];
        }
    }

    long long sum = 0;

    for (int i = 0; i < n; i++) {
        if (!sw[i].exists) {
            continue;
        }

        if (a[i] == 0) {
            for (int j = 0; j < sw[i].nr; j++) {
                int room = sw[i].c[j];
                a[room] ^= 1;
            }
            sum += sw[i].t;
        }
    }

    fout << sum;
    return 0;
}