Pagini recente » Cod sursa (job #2734089) | Cod sursa (job #836039) | Cod sursa (job #694646) | Cod sursa (job #171579) | Cod sursa (job #2456427)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("bowling.in");
ofstream g("bowling.out");
const int NMAX = 5e2 + 5;
int T, N, A[NMAX];
int dp[NMAX], Ap[NMAX];
int main()
{
dp[0] = 0;
dp[1] = 1;
dp[2] = 2;
for(int i = 3; i <= 500; ++i)
{
memset(Ap, 0, sizeof(Ap));
int mex = 0;
for(int j = 1; j <= i; ++j)
{
int Add = 0;
if(j < i)
{
Add = dp[j - 1] * dp[i - j - 1];
++Ap[Add];
}
Add = dp[j - 1] * dp[i - j];
++Ap[Add];
}
for(int j = 0; j <= 500; ++j)
if(!Ap[j])
{
mex = j;
break;
}
dp[i] = mex;
}
f >> T;
while(T--)
{
f >> N;
for(int i = 1; i <= N; ++i)
f >> A[i];
int Sum = 0;
int lc = 0;
for(int i = 1; i <= N; ++i)
{
if(A[i])
++lc;
else
{
Sum ^= dp[lc];
lc = 0;
}
}
if(lc)
Sum ^= dp[lc];
if(Sum == 0)
g << "Fumeanu";
else g << "Nargy";
g << '\n';
}
return 0;
}