Pagini recente » Cod sursa (job #284106) | Cod sursa (job #1723867) | Cod sursa (job #82617) | Cod sursa (job #524425) | Cod sursa (job #1549591)
#include <cstdio>
#define MAXN 1000
int v[MAXN],mat[MAXN][MAXN],c[MAXN],tc[MAXN],nrc[MAXN];
int main(){
FILE*fi,*fout;
int i,j,con,n,m,lin,flag,max,t;
fi=fopen("aprindere.in" ,"r");
fout=fopen("aprindere.out" ,"w");
fscanf(fi,"%d%d" ,&n,&m);
flag=0;
for(i=0;i<n;i++){
fscanf(fi,"%d" ,&v[i]);
flag+=v[i];
}
for(i=0;i<m;i++){
fscanf(fi,"%d%d%d" ,&c[i],&tc[i],&nrc[i]);
for(j=0;j<nrc[i];j++)
fscanf(fi,"%d" ,&mat[i][j]);
}
t=0;
while(flag<n){
max=0;
for(i=0;i<m;i++){
con=flag;
for(j=0;j<nrc[i];j++){
if(v[mat[i][j]]==1)
con--;
else
con++;
}
if(max<con){
max=con;
lin=i;
}
}
for(j=0;j<nrc[lin];j++){
if(v[mat[lin][j]]==1)
flag--;
else
flag++;
v[mat[lin][j]]=(v[mat[lin][j]]+1)%2;
}
t+=tc[lin];
}
fprintf(fout,"%d" ,t);
fclose(fi);
fclose(fout);
return 0;
}