Cod sursa(job #2336307)

Utilizator liviu2000Dragomirescu Liviu liviu2000 Data 4 februarie 2019 23:48:25
Problema Bowling Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <bits/stdc++.h>
#define N 50005

using namespace std;

ifstream fin("bowling.in") ;
ofstream fout("bowling.out") ;

int dp[N] ;
bool viz[N] ;

void prec()
{
    int i , j , k ;
    dp[1] = 1 ;
    dp[0] = 0 ;
    for ( i = 2 ; i <= N-5 ; i++ )
    {
        for ( j = 0 , k=i-1 ; j <= k ; j++ , k--)
            viz[dp[j]^dp[k]] = true ;
        k = 0 ;
        while ( viz[k] == true )
            k++ ;
        dp[i] = k ;
    }
}

int main()
{
    int n  , i , j , k , p , x , ct;
    prec();
    fin >> n ;
    for ( i = 1 ; i <= n ; i++ )
    {
        fin >> k ;
        ct=0;
        x=0;
        for ( j = 1 ; j <= k ; j++ )
        {
            fin >> p ;
            if ( p == 0 )
            {
                x = (x^dp[ct]) ;
                ct=0;
            }
            else
                ct++ ;
        }
        x = (x^dp[ct]) ;
        if ( x == 0 )
            fout << "Fumeanu" << '\n' ;
        else
            fout << "Nargy" << '\n' ;
    }
}