Pagini recente » Cod sursa (job #1314859) | Cod sursa (job #2853116) | Cod sursa (job #2509327) | Cod sursa (job #494303) | Cod sursa (job #25236)
Cod sursa(job #25236)
#include <stdio.h>
#include <bitset>
using namespace std;
#define NMAX 1100
int N, M;
int rez[NMAX];
bitset <NMAX> a[NMAX];
bitset <NMAX> b[NMAX];
int ver(int x, int g)
{
int i;
for (i = 1; i <= M; i++) {
if (!a[i][x] && !b[i][x]) if (rez[i] != 0) return 0;
if (a[i][x]) {
if (g == -1) if (rez[i] != 2) return 0;
if (g == 1) if (rez[i] != 1) return 0;
}
if (b[i][x]) {
if (g == -1) if (rez[i] != 1) return 0;
if (g == 1) if (rez[i] != 2) return 0;
}
}
return 1;
}
int main()
{
int i, j, q, w;
freopen("balanta.in", "r", stdin);
freopen("balanta.out", "w", stdout);
scanf("%d %d", &N, &M);
for (i = 1; i <= M; i++) {
scanf("%d", &q);
for (j = 1; j <= q; j++) {
scanf("%d", &w);
a[i][w] = 1;
}
for (j = 1; j <= q; j++) {
scanf("%d", &w);
b[i][w] = 1;
}
scanf("%d", &rez[i]);
}
for (i = 1; i <= N; i++) {
if (ver(i, -1)) rez[++rez[0]] = i;
if (ver(i, 1)) rez[++rez[0]] = i;
}
if (rez[0] > 1) {
printf("0\n");
return 0;
}
printf("%d\n", rez[1]);
fclose(stdin);
fclose(stdout);
return 0;
}