Pagini recente » Cod sursa (job #1801720) | Cod sursa (job #1785860) | Cod sursa (job #383389) | Cod sursa (job #1793878) | Cod sursa (job #7114)
Cod sursa(job #7114)
#include <fstream.h>
ifstream f1("aprindere.in");
ofstream f2("aprindere.out");
int main(){
int n,m,i,j,a[1001],c[1001],v[1001][101],nr[1004],ok;
double t[1001],st,tmin=1000000;
int q[1001],b[1001];
f1>>n;f1>>m;
for (i=0;i<n;i++)f1>>a[i];
for (i=1;i<=m;i++){
f1>>c[i];f1>>t[i];f1>>nr[i];
for (j=1;j<=nr[i];j++)f1>>v[i][j];
}
for (i=0;i<=m;i++)q[i]=0;
while (q[0]==0){
for (i=0;i<n;i++)b[i]=a[i];
st=0;
for (i=1;i<=m;i++)if (q[i]==1){
for (j=1;j<=nr[i];j++){
b[v[i][j]]=(b[v[i][j]]+1)%2;
}
st+=t[i];
}
ok=1;
for (i=0;i<n;i++)if (!b[i]){ok=0;break;}
if (ok==1&&st<tmin)tmin=st;
q[m]++;
for (i=m;i>=1;i--)if (q[i]==2){q[i]=0;q[i-1]++;}
}
f2<<tmin<<'\n';
f1.close();
f2.close();
return 0;
}