Cod sursa(job #2243644)

Utilizator mihailescu_eduardMihailescu Eduard-Florin mihailescu_eduard Data 21 septembrie 2018 08:43:00
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <cstdio>

FILE *fin = freopen("aprindere.in","r",stdin);
FILE *fout  = freopen("aprindere.out","w",stdout);

static const int NMAX = 1000 + 5;

/* ------ DATA -------- */
int n,m;
int v[NMAX];
/* ------ DATA -------- */

struct buton{
    int camera;
    int timp;
    int nr;
    int becuri[NMAX];
}a[NMAX];

void ReadInput()
{
    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",&a[i].camera, &a[i].timp, &a[i].nr);
        for(int j = 0; j < a[i].nr; ++j)
            scanf("%d",&a[i].becuri[j]);
    }

}

void SolveGreedy()
{
    /// Pentru fiecare intrerupator
    int ct = 0;
    for(int i = 0; i< m; i++)
    {
        if(v[a[i].camera] == 0)
        {
            ct+=a[i].timp;
            for(int j = 0; j < a[i].nr; j++)
                v[a[i].becuri[j]]= (v[a[i].becuri[j]] + 1) % 2;
        }
    }
    printf("%d",ct);
}

int main()
{
    ReadInput();
    SolveGreedy();
    return 0;
}