Cod sursa(job #3330992)

Utilizator piaaaaaaaioana praj piaaaaaaa Data 23 decembrie 2025 17:16:42
Problema Aprindere Scor 100
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 1.03 kb
#include <bits/stdc++.h>
using namespace std;

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

struct intrerupator {
    int timp, nr, camere[101];
    bool exista;
} intr[1001];

void fol_intr(int i, int lum[], int &tt) {
    tt += intr[i].timp;

    for (int j = 0; j < intr[i].nr; j++) {
        int cam = intr[i].camere[j];
        lum[cam] = 1 - lum[cam];
    }
}

int main() {
    int n, m, lum[1001], i_cam, tt = 0;
    fin >> n >> m;

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

    for (int i = 0; i < n; i++)
        intr[i].exista = false;

    for (int i = 0; i < m; i++) {
        fin >> i_cam;
        
        intr[i_cam].exista = true;
        
        fin >> intr[i_cam].timp >> intr[i_cam].nr;
        
        for (int j = 0; j < intr[i_cam].nr; j++)
            fin >> intr[i_cam].camere[j];
    }

    for (int i = 0; i < n; i++) 
        if (lum[i] == 0) 
            fol_intr(i, lum, tt);
        
    fout << tt;
    
    return 0;
}