Cod sursa(job #3330994)

Utilizator maxtraAlex Deonise maxtra Data 23 decembrie 2025 17:19:20
Problema Aprindere Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <bits/stdc++.h>

using namespace std;

struct intrerupator {
    int poz;        // camera unde e intrerupatorul
    int timp;       // timpul de apasare
    int nr;         // cate camere modifica
    int camere[105]; // lista camerelor afectate
};

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

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

    int a[105]; // starea becurilor
    for (int i = 0; i < n; i++)
        fin >> a[i];

    intrerupator v[105];
    for (int i = 0; i < m; i++) {
        fin >> v[i].poz >> v[i].timp >> v[i].nr;
        for (int j = 0; j < v[i].nr; j++)
            fin >> v[i].camere[j];
    }

    int sum = 0;

    for (int i = 0; i < m; i++) {
        if (a[v[i].poz] == 0) {
            sum += v[i].timp;
            for (int j = 0; j < v[i].nr; j++) {
                int c = v[i].camere[j];
                a[c] = 1 - a[c]; // toggle bec
            }
        }
    }

    fout << sum << "\n";
    
    return 0;
}