Cod sursa(job #7374)

Utilizator mi5humihai draghici mi5hu Data 21 ianuarie 2007 13:46:56
Problema Aprindere Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<iostream.h>
#include<stdio.h>
#include<math.h>
#include<fstream.h>
int main()
{long t2,p,i,j,l,n,m,t1,t,v1[100],v[100],b[100],a[100][100];
fstream f("aprindere.in",ios::in),g("aprindere.out",ios::out);
f>>n>>m;
t2=100000000;
for (i=1;i<=n;i++) f>>v[i];
for (i=1;i<=m;i++) {f>>a[i][1]>>a[i][2]>>a[i][3];
		   for (j=1;j<=a[i][3];j++) {f>>a[i][j+3];
						a[i][j+3]++;}
		   }
for (i=1;i<=n+1;i++) b[i]=0;
while (b[m+1]==0)
{l=b[1]+1;b[1]=l%2;
t=l/2;
for (i=2;i<=m+1;i++) {l=b[i]+t;
		      b[i]=l%2;
		      t=l/2;}
t1=0;
for (i=1;i<=n;i++) v1[i]=v[i];
for (i=1;i<=m;i++) if (b[i]==1) {for (j=1;j<=a[i][3];j++) {if (v1[a[i][j+3]]==0) v1[a[i][j+3]]=1;
								else v1[a[i][j+3]]=0;}
				 t1=t1+a[i][2];}
p=1;
for (i=1;i<=n;i++) if (v1[i]==0) p=0;
if ((t1<t2)&&(p==1)) t2=t1;
}
g<<t2;
f.close();
g.close();
}