Pagini recente » Cod sursa (job #2925724) | Cod sursa (job #1786094) | Cod sursa (job #226867) | Cod sursa (job #693580) | Cod sursa (job #876792)
Cod sursa(job #876792)
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define maxN 1030
int H[maxN], L[maxN];
int A[maxN], B[maxN];
int main()
{
freopen ("balanta.in", "r", stdin);
freopen ("balanta.out", "w", stdout);
int N, M;
scanf ("%d %d", &N, &M);
for (int i = 1; i <= N; ++ i) H[i] = L[i] = true;
while (M --)
{
int k, r;
scanf ("%d", &k);
for (int i = 1; i <= k; ++ i) scanf ("%d", &A[i]);
for (int i = 1; i <= k; ++ i) scanf ("%d", &B[i]);
scanf ("%d", &r);
if (! r)
for (int i = 1; i <= k; ++ i) H[A[i]] = L[A[i]] = H[B[i]] = L[B[i]] = false;
if (r == 1)
{
for (int i = 1; i <= k; ++ i)
{
if (H[A[i]]) H[A[i]] = 2;
if (L[B[i]]) L[B[i]] = 2;
}
for (int i = 1; i <= N; ++ i)
{
if (H[i] == 2) H[i] = 1;
else H[i] = 0;
if (L[i] == 2) L[i] = 1;
else L[i] = 0;
}
}
if (r == 2)
{
for (int i = 1; i <= k; ++ i)
{
if (L[A[i]]) L[A[i]] = 2;
if (H[B[i]]) H[B[i]] = 2;
}
for (int i = 1; i <= N; ++ i)
{
if (H[i] == 2) H[i] = 1;
else H[i] = 0;
if (L[i] == 2) L[i] = 1;
else L[i] = 0;
}
}
}
int sol = 0, h = 0, l = 0;
for (int i = 1; i <= N; ++ i)
{
if (H[i]) ++ h, sol = i;
if (L[i]) ++ l, sol = i;
}
if ((h == 1 && !l) || (!h && l == 1)) printf ("%d", sol);
else printf ("0");
return 0;
}