Cod sursa(job #2649763)

Utilizator mjmilan11Mujdar Milan mjmilan11 Data 16 septembrie 2020 11:43:39
Problema Bowling Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bowling.in");
ofstream fout("bowling.out");
const int NMAX = 105;
int sg[NMAX],T,n,x;
bool ok[NMAX*2];
int main()
{
    sg[1]=1,sg[2]=2;
    for(int i=3;i<=100;i++){
        for(int j=0;j<=202;j++) ok[j]=false;
        for(int j=0;j<i;j++)    ok[sg[j]^sg[i-j-1]]=true;
        for(int j=0;j<i-1;j++)  ok[sg[j]^sg[i-j-2]]=true;
        for(int j=0;j<=200;j++)
        if(ok[j]==false){
            sg[i]=j;
            break;
        }
    }
    fin >> T;
    for(int t=1;t<=T;t++){
        fin >> n;
        int rasp=0,dim=0,SG;
        for(int i=1;i<=n;i++){
            fin >> x;
            if(x==1) ++dim;
            else {
                if(dim<=80) SG=sg[dim];
                else        SG=sg[80+(dim-80)%12];
                rasp^=SG;
                dim=0;
            }
        }
        if(dim<=80) SG=sg[dim];
        else        SG=sg[80+(dim-80)%12];
        rasp^=SG;
        if(rasp==0) fout << "Fumeanu" << '\n';
        else        fout << "Nargy" << '\n';
    }
    return 0;
}