Cod sursa(job #1482118)

Utilizator alexpetrescuAlexandru Petrescu alexpetrescu Data 6 septembrie 2015 15:22:43
Problema Aprindere Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>
#define MAXN 1000
#define MAXP 100
#define MAXQ 1000
int m[MAXQ+1][MAXP], t[MAXN], p[MAXQ+1], k[MAXN+1], cost[MAXQ+1];
int main(){
    int n, q, i, x, j, ans;
    FILE *fin, *fout;
    fin=fopen("aprindere.in", "r");
    fout=fopen("aprindere.out", "w");
    fscanf(fin, "%d%d", &n, &q);
    for(i=0; i<n; i++){
        fscanf(fin, "%d", &t[i]);
    }
    for(i=1; i<=q; i++){
        fscanf(fin, "%d%d%d", &x, &cost[i], &p[i]);
        for(j=0; j<p[i]; j++){
            fscanf(fin, "%d", &m[i][j]);
        }
        k[x]=i;
    }
    ans=0;
    for(i=0; i<n; i++){
        if(t[i]==0){
            for(j=0; j<p[k[i]]; j++){
                t[m[k[i]][j]]=(t[m[k[i]][j]]==0);
            }
            ans+=cost[k[i]];
        }
    }
    fprintf(fout, "%d\n", ans);
    fclose(fin);
    fclose(fout);
    return 0;
}