Pagini recente » Cod sursa (job #1602701) | Cod sursa (job #611999) | Cod sursa (job #2974726) | Cod sursa (job #801107) | Cod sursa (job #27952)
Cod sursa(job #27952)
#include <stdio.h>
#include <bitset>
using namespace std;
const int N_MAX = 1050;
bitset <N_MAX> a[N_MAX][2];
int rez[N_MAX], N, M;
int is(int fel, int g)
{
int i, care;
for (i = 1; i <= M; i ++) {
care = 0;
if (a[i][1][g - 1] == 1) {
care = 1;
} else {
if (a[i][2][g - 1] == 1) {
care = 2;
}
}
if (fel == -1) {
if (rez[i] == care) {
return 0;
}
} else {
if (rez[i] != care) {
return 0;
}
}
}
return 1;
}
int main()
{
freopen("balanta.in", "r", stdin);
freopen("balanta.out", "w", stdout);
int k, i, j, x;
scanf("%d %d\n", &N, &M);
for (i = 1; i <= M; i ++) {
scanf("%d ", &k);
for (j = 1; j <= k; j ++) {
scanf("%d ", &x);
a[i][1][x - 1] = 1;
}
for (j = 1; j <= k; j ++) {
scanf("%d ", &x);
a[i][2][x - 1] = 1;
}
scanf("%d\n", &rez[i]);
}
int nr = 0, poz = 0, g = 0;
for (i = 1; i <= N; i ++) {
if (is(-1, i) || is(1, i)) {
nr ++;
}
if (nr == 1 && !g) {
g = 1;
poz = i;
}
}
if (nr != 1) {
printf("0\n");
} else {
printf("%d\n", poz);
}
return 0;
}