Cod sursa(job #1222322)

Utilizator sebinechitasebi nechita sebinechita Data 22 august 2014 20:59:32
Problema Bowling Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <iostream>
#include <fstream>
#include <bitset>
#include <cstring>
using namespace std;
ifstream fin("bowling.in");
ofstream fout("bowling.out");
int sg[205];

int val(int x)
{
    if(x<=100)
        return x;
    return (x-100)%12+100;
}

int main()
{
    int i, j, t, n;
    for(i=1;i<=200;i++)
    {

        bitset<200> v;
        for (int j = 0; j <= i / 2; j++)
            v[sg[j] ^ sg[i - j - 1]] = 1;
        for (int j = 0; j <= (i - 1) / 2; j++)
            v[sg[j] ^ sg[i - j - 2]] = 1;

        for (int j = 0; ; j++)
        {
            if (!v[j])
            {
                sg[i] = j;
                break;
            }
        }
      //  cout<<sg[i]<<" ";
    }
    int x;
    fin>>t;
    while(t--)
    {
        fin>>n;
        int s=0;
        int cnt=0;
        for(i=1;i<=n;i++)
        {
            fin>>x;
            if(x)
                cnt++;
            else
            {
                s^=sg[val(cnt)];
                cnt=0;
            }
        }
        s^=sg[val(cnt)];
        fout<<((s)? "Nargy" : "Fumeanu")<<"\n";
    }
}