Pagini recente » Cod sursa (job #296053) | Cod sursa (job #2715464) | Cod sursa (job #163206) | Monitorul de evaluare | Cod sursa (job #1689890)
#include<iostream>
#include<fstream>
#include<vector>
#include<cstdlib>
#include<queue>
#include<cmath>
#include<algorithm>
#include<iomanip>
using namespace std;
ifstream f("bowling.in");
ofstream g("bowling.out");
int M[50005], A[50005], car[50005];
int n = 8000, t;
void Read()
{
f>>n;
for(int i=1; i<=n; i++)
f>>A[i];
}
void Precalc()
{
int i, j, xorsum;
M[1] = 1;
M[2] = 2;
for(i=2; i<=n; i++){
for(j=0; j<=i/2; j++){
xorsum = M[j] ^ M[i-j-1];
car[xorsum] = 1;
xorsum = M[j] ^ M[i-j-2];
car[xorsum] = 1;
}
for(j=0; j<=i && car[j]; j++);
M[i] = j;
for(j=0; j<=i; j++)
car[j] = 0;
}
}
void Solve()
{
int i, xorsum = 0, secv = 0;
for(i=1; i<=n; i++){
if(A[i])
secv++;
if(!A[i]){
xorsum ^= M[secv];
secv = 0;
}
}
if(A[n])
xorsum ^= M[secv];
if(xorsum)
g<<"Nargy\n";
else
g<<"Fumeanu\n";
}
int main()
{
f>>t;
Precalc();
while(t--){
Read();
Solve();
}
return 0;
}