Cod sursa(job #239775)

Utilizator mihaipoascaPoasca Mihai mihaipoasca Data 5 ianuarie 2009 20:15:18
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<stdio.h>


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

int N,M,s[1004],t[1005],cost;
struct nod{int bec;nod* next;};
typedef nod* lista;
lista L[1005];

int val(int x){
    if(x==0) return 1;
    return 0;
}

int main(){
    fscanf(fin,"%d %d",&N,&M);
    for(int i=0;i<N;i++){
        fscanf(fin,"%d",&s[i]);
    }
    for(int i=1;i<=M;i++){
        int x,nr;
        fscanf(fin,"%d",&x);
        fscanf(fin,"%d %d",&t[x],&nr);
        for(int j=1;j<=nr;j++){
            lista aux=new nod;
            fscanf(fin,"%d",&aux->bec);
            aux->next=L[x];
            L[x]=aux;
        }
    }
    for(int i=0;i<N;i++)
        if(s[i]==0){
            for(lista p=L[i];p;p=p->next)
                s[p->bec]=val(s[p->bec]);
            cost+=t[i];
        }

    fprintf(fout,"%d\n",cost);
    fclose(fin);
    fclose(fout);
    return 0;

}