Cod sursa(job #3267558)

Utilizator SwanOCPica Razvan Mihai SwanOC Data 11 ianuarie 2025 13:29:34
Problema Aprindere Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <fstream>

using namespace std;

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

struct bec {
    int camera;
    int timp;
    int nrc;

    struct camere {
    int idx;
    } cam[1001];
}v[1001];

int main()
{
    int n, m, lumina[1001];

    fin >> n >> m;

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

    for (int i = 0; i < m; i++) {
        fin >> v[i].camera >> v[i].timp >> v[i].nrc;
        for (int j = 0; j < v[i].nrc; j++)
            fin >> v[i].cam[j].idx;
    }

    bool sortat;
    do {
        sortat = false;
        for (int i = 0; i < n - 1; i++)
            if (v[i].timp > v[i + 1].timp) {
                bec aux = v[i];
                v[i] = v[i + 1];
                v[i + 1] = aux;

                sortat = true;
            }
    } while (sortat);

    int timp_total = 0;

    for (int i = 0; i < m; i++) {
        if (lumina[v[i].camera] == 0) {
            timp_total += v[i].timp;

            for (int j = 0; j < v[i].nrc; j++) {
                int idx = v[i].cam[j].idx;
                lumina[idx] = 1 - lumina[idx];
            }
        }
    }

    fout << timp_total;

    return 0;
}