Cod sursa(job #2518016)

Utilizator RadianElevenAdrian Ariotn RadianEleven Data 4 ianuarie 2020 18:42:53
Problema Bowling Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <stdio.h>
#include <string.h>
using namespace std;
ifstream f ("bowling.in");
ofstream g ("bowling.out");
int t;
int mex[50009];
int k, ap[50009];
int x,s;
int findMex(int l)
{

    memset(ap, 0, sizeof ap);
    for(int i=0;i<=l-2;++i)
    {
        ap[mex[i]^mex[(l-2-i)]]=1;
    }
    for(int i=0;i<=l-1;++i)
    {
        ap[mex[i]^mex[(l-1-i)]]=1;
    }
    int mx=0;
    while(ap[mx]==1)
        mx++;
    return mx;
}
int main()
{
    mex[1]=1;
    for(int i=2;i<=100;++i)
    {
        mex[i]=findMex(i);
    }
    for(int i=101; i<=5e4;i++)
        mex[i]=mex[i-12];
    f>>t;
    k=0;
    s=0;
    int xes=0;
    for(int i=1;i<=t;++i)
    {
        xes=0;
        int u;
        f>>u;
        s=0;
        for(int r=1;r<=u;++r)
        {

            f>>x;
             if(x) s++;
            if(x==0 || r==u)
            {

                //cout<<s<<" ";
                xes^=mex[s];
                s=0;
            }


        }
        if(xes==0)
            g<<"Fumeanu\n";
        else g<<"Nargy\n";

    }

    return 0;
}