Cod sursa(job #107514)

Utilizator pandaemonAndrei Popescu pandaemon Data 19 noiembrie 2007 22:09:14
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<stdio.h>

int n,m,i,j,var,timp;
struct banca {int apr,t,nrc,lista[101];};
banca v[1001];

int init()
{freopen("aprindere.in","r",stdin);
 freopen("aprindere.out","w",stdout);
 scanf("%d %d",&n,&m);
 for(i=0;i<n;i++) scanf("%d",&v[i].apr);

 for(i=1;i<=m;i++) {scanf("%d",&var);
		    scanf("%d %d",&v[var].t,&v[var].nrc);
		    for(j=1;j<=v[var].nrc;j++) scanf("%d",&v[var].lista[j]);}
}

int inline schimbare(int &x)
{if(x==1) x=0; else x=1;}

int aprindere()
{for(i=0;i<n;i++) if(v[i].apr==0 && v[i].nrc==0)
		  {printf("-1\n"); return 1;}
		  else if(v[i].apr==0 && v[i].nrc!=0)
		  { timp+=v[i].t;
		  for(j=1;j<=v[i].nrc;j++)
		  {var=v[i].lista[j];
		  schimbare(v[var].apr);} }
printf("%d\n",timp);
}

int main()
{init(); aprindere();}