Cod sursa(job #24944)

Utilizator dominoMircea Pasoi domino Data 4 martie 2007 01:31:26
Problema Balanta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <stdio.h>

#define MAX_N 1024
#define FIN "balanta.in"
#define FOUT "balanta.out"

int N, M, result[MAX_N];
char A[MAX_N][MAX_N];

int main(void)
{
    int i, j, cnt, x;

    freopen(FIN, "r", stdin);
    freopen(FOUT, "w", stdout);

    scanf("%d %d", &N, &M);
    for (i = 0; i < M; i++)
    {
        scanf("%d", &cnt);
        for (j = 0; j < cnt; j++)
        {
            scanf("%d", &x), x--; 
            A[x][i] = 1;
        }
        for (j = 0; j < cnt; j++)
        {
            scanf("%d", &x), x--;
            A[x][i] = 2;
        }
        scanf("%d", result+i);
    }

    for (cnt = i = 0; i < N && cnt <= 1; i++)
    {
        for (j = 0; j < M; j++)
        {
            if (!A[i][j] && result[j]) break;
            if (A[i][j] == 1 && result[j] != 2) break;
            if (A[i][j] == 2 && result[j] != 1) break;
        }
        if (j == M) cnt++, x = i;

        for (j = 0; j < M; j++)
        {
            if (!A[i][j] && result[j]) break;
            if (A[i][j] == 1 && result[j] != 1) break;
            if (A[i][j] == 2 && result[j] != 2) break;
        }
        if (j == M) cnt++, x = i;
    }

    printf("%d\n", cnt != 1 ? 0 : x+1);

    return 0;
}