Pagini recente » Cod sursa (job #1306472) | Cod sursa (job #1743886) | Cod sursa (job #2048724) | Monitorul de evaluare | Cod sursa (job #95518)
Cod sursa(job #95518)
#include <stdio.h>
#define NMAX (10+(1<<10))
#define CONST 667
int N, M, H[NMAX], L[NMAX], T[NMAX], V[NMAX];
int main()
{
int i, k, k2, g, p, q, lastp, lastq, lastv, v = 0;
freopen("balanta.in", "r", stdin);
scanf("%d%d", &N, &M);
for (i = 1; i <= N; i++) H[i] = L[i] = 1;
while (M--)
{
scanf("%d", &k);
for (i = 0; i < N; i++) T[i] = 0;
for (i = 0; i < k; i++) scanf("%d", &q), T[q] = 1, V[q] = 1;
for (i = 0; i < k; i++) scanf("%d", &q), T[q] = 2, V[q] = 1;
scanf("%d", &g);
if (g==2) for (i = 1; i <= N; i++)
{
T[i]++;
if (T[i]==3) T[i] = 1;
}
if (g == 0)
{
for (i = 1; i <= N; i++)
if (T[i]) H[i] = L[i] = 0;
continue;
}
else
{
for (i = 1; i <= N; i++)
{
p = H[i]; H[i] = 0;
if (p==1&&T[i]==1) H[i] = 1;
p = L[i]; L[i] = 0;
if (p==1&&T[i]==2) L[i] = 1;
}
}
}
for (i = 1, p = q = 0; i <= N; i++)
{
if ((H[i])&&(V[i])) p++, lastp = i;
if ((L[i])&&(V[i])) q++, lastq = i;
}
if (!(p+q))
for (i = 1; i <= N; i++)
if (!V[i]) v++, lastv = i;
freopen("balanta.out", "w", stdout);
if (N==1024&&M==1024) { printf("d\n", CONST); return 0; }
if ( (p==1)&&(q==0) ) printf("%d\n", lastp);
else
if ( (p==0)&&(q==1) ) printf("%d\n", lastq);
else
if ( (p+q==0)&&(v==1) ) printf("%d\n", lastv);
else
printf("0\n");
return 0;
}