Pagini recente » Cod sursa (job #974692) | Rating Pandichie Anton-Valentin (Valentinagro) | Cod sursa (job #2297460) | Cod sursa (job #1444464) | Cod sursa (job #984315)
Cod sursa(job #984315)
#include <fstream>
#include <algorithm>
#include <utility>
#include <vector>
#include <queue>
#include <stack>
#include <queue>
#include <cstring>
#define NMAX 90
#define get_min( a , b ) ((a)<(b)?(a):(b))
#define get_max( a , b) ((a)>(b)?(a):(b))
using namespace std;
ifstream in("bowling.in");
ofstream out("bowling.out");
int SG[NMAX];
bool used[15];
int N,T;
inline int mex ( )
{
int i ;
for( i = 0 ; i <= 15 ; ++i )
if( used[i] == false ) return i;
return 0 ;
}
int Period ( int x )
{
if ( x > 72 )
return 72 + ( x-72) % 12 ;
return x ;
}
void Preprocess ( void )
{
int i , j ;
SG[0] = 0 ;
for( i = 1 ; i <= 84 ; ++i )
{
memset(used,0,sizeof(used));
for( j = 1 ; j <= i ; ++j )
{
used[SG[j-1]^SG[i-j]] = true ;
if( j < i )
used [ SG[j-1]^SG[i-j-1] ] = true ;
}
SG[i] = mex ();
}
}
int main ( void )
{
int i , j , len,S;
Preprocess();
in >> T ;
for ( ; T > 0 ; --T )
{
in >> N ;
len = 0 ;S = 0 ;
for ( i = 1 ; i <= N ; ++i )
{
int popi;
in >> popi ;
if ( popi == 1 )
++len;
else
{
if( len )
S ^=SG[Period(len)];
len = 0 ;
}
}
if( len )
S ^= SG[Period(len)];
out << ( S > 0 ? "Nargy\n" : "Fumeanu\n");
}
}