Cod sursa(job #125577)

Utilizator retxedretxed retxed Data 20 ianuarie 2008 14:56:55
Problema Xerox Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <cstdio>

#define NMAX 105
#define MMAX 205
#define MAXTABLE 40005

int N, cnt[NMAX], max;
int SG[MMAX];
bool used[MAXTABLE];

void read_data()
{
    int tmp;
    max=0;
    scanf("%d %d %d", &N, &tmp, &tmp);
    for(int i=0; i<N; ++i)
    {
        scanf("%d", &cnt[i]);
        if(max<cnt[i])
            max=cnt[i];
        for(int j=0; j<cnt[i]; ++j)
            scanf("%d %d", &tmp, &tmp);
    }
}

void solve()
{
    SG[0]=0;
    for(int i=0; i<MAXTABLE; ++i)
        used[i]=false;
    for(int i=1; i<=max; ++i)
    {
        for(int j=0; j<=i-1; ++j)
            used[SG[j]^SG[i-j-1]]=true;
        if(i==1)
            SG[i]=0;
        else
            SG[i]=SG[i-1];
        for(; used[SG[i]]==true; ++SG[i]);
    }
}


int main()
{
    freopen("xerox.in", "r", stdin);
    freopen("xerox.out", "w", stdout);
    int T;
    scanf("%d", &T);
    for(int i=0; i<T; ++i)
    {
        read_data();
        solve();
        int value=0;
        for(int j=0; j<N; ++j)
            value ^= SG[cnt[j]];
        printf("%d\n", (value!=0));
    }
    return 0;
}