Pagini recente » Cod sursa (job #27880) | Cod sursa (job #2096688) | Cod sursa (job #3193629) | Cod sursa (job #906231) | Cod sursa (job #7375)
Cod sursa(job #7375)
#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();
}