Cod sursa(job #2456446)

Utilizator PredescuSebastianIonPredescu Sebastian Ion PredescuSebastianIon Data 14 septembrie 2019 13:18:23
Problema Bowling Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.53 kb
#include <fstream>

using namespace std;
ifstream f("bowling.in");
ofstream g("bowling.out");
int a[505],b[5005],mex,val,nr_teste,n,nr,x;
int aux[]={1,2,8,1,4,7,2,1,4,2,7,4};
int main()
{
    a[0]=0;
    for(int i=1;i<=50;i++)
    {
        mex=0;
        for(int j=1;j<=5000;j++)
        {
            b[j]=0;
        }
        for(int j=1;j<=i;j++)
        {
            if(j+1<=i)
            {
                val=a[j-1]^a[i-j-1];
                b[val]=1;
            }
            val=a[j-1]^a[i-j];
            b[val]=1;
        }
        for(int j=0;j<=5000;j++)
        {
            if(b[j]==0)
            {
                mex=j;
                break;
            }
        }
        a[i]=mex;
    }
    f>>nr_teste;
    for(;nr_teste>0;nr_teste--)
    {
        f>>n;
        nr=0;
        val=0;
        for(int i=1;i<=n;i++)
        {
            f>>x;
            if(x==1)
            {
                nr++;
            }
            else
            {
                if(nr>48)
                {
                    nr=nr-49;
                    val=val^aux[nr%12];
                }
                else
                {
                    val=val^a[nr];
                }
                nr=0;
            }
        }
        if(nr>48)
        {
            nr=nr-49;
            val=val^aux[nr%12];
        }
        else
        {
            val=val^a[nr];
        }
        if(val==0)g<<"Fumeanu"<<'\n';
        else g<<"Nargy"<<'\n';
    }
    return 0;
}