Cod sursa(job #2628071)

Utilizator bogdi1bogdan bancuta bogdi1 Data 14 iunie 2020 12:16:57
Problema Bowling Scor 100
Compilator cpp-32 Status done
Runda Arhiva de probleme Marime 1.25 kb
#include <cstdio>

using namespace std;
bool f[205];
int mex[105];
void precalc()
{
    mex[0]=0;
    mex[1]=1;
    mex[2]=2;
    int i,j;
    for(i=3; i<=100; i++){
        for(j=0; j<=200; j++)
            f[j]=0;
        for(j=0; j<i; j++)
            f[(mex[j]^mex[i-j-1])]=1;
        for(j=0; j<i-1; j++)
            f[(mex[j]^mex[i-j-2])]=1;
        for(j=0; j<=200; j++)
            if(f[j]==0){
                mex[i]=j;
                break;
            }
    }
}
int main()
{   freopen("bowling.in", "r", stdin);
    freopen("bowling.out", "w", stdout);
    int t,n,i,x,l,sol;
    scanf("%d", &t);
    precalc();
    while(t){
        scanf("%d", &n);
        l=0;
        sol=0;
        for(i=1; i<=n; i++){
            scanf("%d", &x);
            if(x==1)
                l++;
            else{
                if(l<=80)
                    sol=(sol^mex[l]);
                else
                    sol=(sol^mex[80+(l-80)%12]);
                l=0;
            }
        }
        if(l<=80)
            sol=(sol^mex[l]);
        else
            sol=(sol^mex[80+(l-80)%12]);
        if(sol>0)
            printf("Nargy\n");
        else
            printf("Fumeanu\n");
        t--;
    }
    return 0;
}