Cod sursa(job #10476)

Utilizator DastasIonescu Vlad Dastas Data 28 ianuarie 2007 15:40:17
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <stdio.h>

FILE *in = fopen("aprindere.in", "r"), *out = fopen("aprindere.out", "w");
int i, j;
int N, M;
int camere[1000];
int intrerupatoare[1000][3000];

void citeste()
{
    fscanf(in, "%d %d", &N, &M);
    for ( i = 0; i < N; ++i )
        fscanf(in, "%d", &camere[i]);

    for ( i = 0; i < M; ++i )
    {
        fscanf(in, "%d %d %d", &intrerupatoare[i][0], &intrerupatoare[i][1], &intrerupatoare[i][2]);
        for ( j = 0; j < intrerupatoare[i][2]; ++j )
            fscanf(in, "%d", &intrerupatoare[i][j+3]);
    }
}

int main()
{
    int sum = 0;
    citeste();

    for ( i = 0; i < M; ++i )
    {
        if ( camere[intrerupatoare[i][0]] == 0 )
        {
            sum += intrerupatoare[i][1];
            for ( j = 0; j < intrerupatoare[i][2]; ++j )
            {
                if ( camere[intrerupatoare[i][j+3]] == 0 )
                    camere[intrerupatoare[i][j+3]] = 1;
                else
                    camere[intrerupatoare[i][j+3]] = 0;
            }
        }
    }

    fprintf(out, "%d\n", sum);

    return 0;
}