Cod sursa(job #1956511)

Utilizator mirunazMiruna Zavelca mirunaz Data 6 aprilie 2017 20:00:30
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <cstdio>
#include <algorithm>
using namespace std;

int x, n, m, timp, v[1001];

struct camera {
    int c, t, nr;
    int nr_c[101];
} s[1001];

bool sortare (camera a, camera b){
    return a.c < b.c;
}

int main ()
{
    freopen ("aprindere.in", "r", stdin);
    freopen ("aprindere.out", "w", stdout);

    scanf ("%d %d", &n, &m);

    for (int i=0; i<n; i++){
        scanf ("%d", &v[i]);
    }

    for (int i=0; i<m; i++){
        scanf ("%d %d %d", &s[i].c, &s[i].t, &s[i].nr);

        for (int j=0; j<s[i].nr; j++){
            scanf ("%d", &s[i].nr_c[j]);
        }
    }

    sort (s, s+m, sortare);

    for (int i=0; i<m; i++){
        if (v[s[i].c] == 0){
            timp += s[i].t;

            for (int j=0; j<s[i].nr; j++){
                v[s[i].nr_c[j]] = (v[s[i].nr_c[j]] + 1) %2;
            }
        }
    }

    printf ("%d", timp);

    return 0;
}