Pagini recente » Cod sursa (job #239601) | Cod sursa (job #1202726) | Cod sursa (job #1160343) | Cod sursa (job #1573254) | Cod sursa (job #27918)
Cod sursa(job #27918)
#include <cstdio>
#include <string.h>
#define Nmax 1030
int n, m;
char vmin[Nmax], vmax[Nmax], t1[Nmax], t2[Nmax];
int main()
{
freopen("balanta.in", "r", stdin);
freopen("balanta.out", "w", stdout);
int i, val, op, cnt = 0, sol, k;
for (i = 1; i < Nmax; ++i)
vmin[i] = 1, vmax[i] = 1;
for(scanf("%d %d", &n, &m); m; --m)
{
memset(t1, 0, sizeof(t1));
memset(t2, 0, sizeof(t2));
scanf("%d", &k);
for (i = 0; i < k; ++i)
{
scanf("%d", &val);
t1[val] = 1;
}
for (i = 0; i < k; ++i)
{
scanf("%d", &val);
t2[val] = 1;
}
scanf("%d", &op);
switch (op)
{
case 0 : for (i = 1; i <= n; ++i) vmin[i] &= (!t1[i]) & (!t2[i]);
for (i = 1; i <= n; ++i) vmax[i] &= (!t1[i]) & (!t2[i]);
break;
case 1 : for (i = 1; i <= n; ++i) vmin[i] &= t2[i];
for (i = 1; i <= n; ++i) vmax[i] &= t1[i];
break;
case 2 : for (i = 1; i <= n; ++i) vmin[i] &= t1[i];
for (i = 1; i <= n; ++i) vmax[i] &= t2[i];
}
}
for (i = 1; i <= n; ++i)
if (vmin[i] || vmax[i])
++cnt, sol = i;
if (cnt == 1) printf("%d\n", sol);
else printf("0\n");
return 0;
}