Cod sursa(job #978083)

Utilizator misinozzz zzz misino Data 27 iulie 2013 19:52:28
Problema Bowling Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<fstream>
#include<cstring>
using namespace std;
ifstream f("bowling.in");
ofstream g("bowling.out");
int i,j,n,s,nr,x,t,sg[50100],ap[111];
inline int p(int x)
{
    if(x<=70)
    return x;
    return 71+(x-71)%12;
}
int main()
{
    for(i=1;i<=82;++i)
    {
        memset(ap,0,sizeof(ap));
        for(j=1;j<=i;++j)
        ap[sg[j-1]^sg[i-j]]=1;
        for(j=1;j<i;++j)
        ap[sg[j-1]^sg[i-j-1]]=1;
        for(j=0;j<=10;++j)
        if(!ap[j])
        break;
        sg[i]=j;
    }
    f>>t;
    for(;t;--t)
    {
        f>>n;
        s=0;
        nr=0;
        for(i=1;i<=n;++i)
        {
            f>>x;
            if(x==1)
            ++nr;
            else
            {
                if(nr)
                s^=sg[p(nr)];
                nr=0;
            }
        }
        if(nr)
        s^=sg[p(nr)];
        if(s)
        g<<"Nargy\n";
        else
        g<<"Fumeanu\n";
    }
    return 0;
}