Cod sursa(job #184866)

Utilizator DorinOltean Dorin Dorin Data 24 aprilie 2008 14:00:02
Problema Bowling Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
# include <cstdio>
# include <vector>
# include <fstream>

# define input "bowling.in"
# define output "bowling.out"

# define max 50001
# define maxx 100

int u[maxx];
int a[max];

using namespace std;

void sg(int x)
{
    int i;
    memset(u,0,sizeof(u));
    for(i = 0; i < x; i++)
        u[a[x-i-1] ^ a[i]] = 1;
    for(i = 0; i < x-1; i++)
        u[a[x-i-2] ^ a[i]] = 1;
    for(i = 0; i < maxx; i++)
        if(!u[i]) break;
    a[x] = i;
}

int main()
{
    freopen(input, "r", stdin);
    freopen(output,"w", stdout);
    int i,T,n,x,e,ret;
    a[0] = 0;
    a[1] = 1;
    for(i = 2; i<= 84;i++) sg(i);
    for(i = 85; i < max; i++) a[i] = a[i-12];
    
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        ret = 0;
        e=0;
        for(i = 0; i<n;i++)
        {    
            scanf("%d",&x);
            if(!x)ret ^= a[e],e=0;
            e+=x;
        }    
        ret^=a[e];
        if(ret) printf("Nargy\n");
        else     printf("Fumeanu\n");
    }
    
    return 0;
}