Cod sursa(job #3333045)

Utilizator kkcalinMarin Calin kkcalin Data 10 ianuarie 2026 16:32:31
Problema Aprindere Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <bits/stdc++.h>
using namespace std;

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

const int NMAX = 5e4;
int i, j;
int a[1001];

struct Switch {
    bool exista;
    int timp, NrCamere;
    int c[101]; 
} v[1001];

int main ()
{
    int N, M;
    in >> N >> M;
    
    for (i = 0; i < N; i++)
        in >> a[i];
    
    for (i = 0; i < M; i++)
    {
        int C, T, NRC;
        in >> C >> T >> NRC;
        
        v[C].exista = true;
        v[C].timp = T;
        v[C].NrCamere = NRC;
        
        for (j = 0; j < NRC; j++)
            in >> v[C].c[j];
    }
    
    bool schimbare = true;
    long long timp_total = 0;
    
    for (i = 0; i < N; i++)
    {
        if (!v[i].exista)
            continue;
        
        if (!a[i])
        {
            for (j = 0; j < v[i].NrCamere; j++)
            {
                int ID = v[i].c[j];
                a[ID] ^= 1;
            }
            timp_total += v[i].timp;
        }
    }
    
    out << timp_total;
    return 0;
}