Cod sursa(job #7021)

Utilizator undogSavu Victor Gabriel undog Data 21 ianuarie 2007 11:50:32
Problema Aprindere Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 1, Clasa a 9-a si gimnaziu Marime 0.79 kb
#include<stdio.h>

main(){

FILE *in=fopen("aprindere.in","rt"),*out=fopen("aprindere.out","w+");
int m,n,on[100],i,j,sw[100][3],ch[100][100],min[2],k,r=0,tmp;
long s=0;
fscanf(in,"%d %d",&m,&n);

for(i=0;i<m;i++)
 fscanf(in,"%d",&on[i]);

for(i=0;i<n;i++){

 for(j=0;j<3;j++)
  fscanf(in,"%d",&sw[i][j]);

 for(j=0;j<sw[i][2];j++)
  fscanf(in,"%d",&ch[i][j]);
}

for(i=0;i<m;i++){

 if(!on[i]){
 min[0]=32000;
    for(j=0;j<n;j++){
     r=0;

     for(k=0;k<sw[j][2];k++){
      if(ch[j][k]==i){
       r=1;break;
      }
     }
     if(r){
      if(sw[j][1]<min[0]){
       min[0]=sw[j][1];
       min[1]=j;

     }
     }
     }
 tmp=min[1];
 for(j=0;j<sw[tmp][2];j++){
  k=ch[tmp][j];
  on[k]=1;
 }
s=s+sw[tmp][1];
}

}

fprintf(out,"%ld",s);
return 0;
}