Pagini recente » Cod sursa (job #3033566) | Cod sursa (job #2413768) | Cod sursa (job #322441) | Cod sursa (job #2522948) | Cod sursa (job #8977)
Cod sursa(job #8977)
#include <cstdio>
#define nmax 1005
int cost[nmax],cam[nmax][105],x[nmax],este[nmax],n,m;
int invers(int x) {
if(x == 0) return 1;
else return 0;
}
int main() {
freopen("aprindere.in","r",stdin);
freopen("aprindere.out","w",stdout);
scanf("%d %d\n",&n,&m);
for(int i = 1; i <= n; i++)
scanf("%d ",&x[i]);
scanf("\n");
for(int i = 1; i <= m; i++) {
int camera;
scanf("%d ",&camera);
camera++;
este[camera] = 1;
scanf("%d %d",&cost[camera],&cam[camera][0]);
for(int j = 1; j <= cam[camera][0]; j++) {
scanf("%d",&cam[camera][j]);
cam[camera][j]++;
}
scanf("\n");
}
int tot = 0;
for(int i = 1; i <= n; i++)
if(x[i] == 0) {
if(!este[i]) {
printf("-1\n");
return 0;
}
for(int j = 1; j <= cam[i][0]; j++) x[cam[i][j]] = invers(x[cam[i][j]]);
tot += cost[i];
}
printf("%d\n",tot);
}