Pagini recente » Cod sursa (job #2869881) | Cod sursa (job #2856940) | Cod sursa (job #213064) | Cod sursa (job #873460) | Cod sursa (job #1992037)
#include <bits/stdc++.h>
#define MAXN 50002
bool v[MAXN + 1];
char dp[MAXN + 1][2];
int poz[MAXN + 1];
int main() {
FILE *fi, *fout;
int t, i, n;
fi = fopen("bowling.in" ,"r");
fout = fopen("bowling.out" ,"w");
fscanf(fi,"%d " ,&t);
while(t > 0) {
t--;
memset(dp, -1, sizeof(dp));
fscanf(fi,"%d " ,&n);
for(i = 1; i <= n; i++)
fscanf(fi,"%d " ,&v[i]);
while(n > 0 && v[n] == 0)
n--;
if(n == 0)
fprintf(fout,"Fumeanu\n");
else {
int sz = 0;
for(i = 1; i <= n; i++)
if(v[i] == 1)
poz[++sz] = i;
dp[sz][0] = dp[sz][1] = 1;
if(poz[sz] == poz[sz - 1] + 1)
dp[sz - 1][0] = dp[sz - 1][1] = 1;
else
dp[sz - 1][0] = dp[sz - 1][1] = 0;
for(i = sz - 2; i >= 0; i--) {
if(poz[i] == poz[i + 1]) {
dp[i][0] = 1 - dp[i + 2][1];
dp[i][1] = 1 - dp[i + 2][0];
}
if(dp[i][0] < 1 - dp[i + 1][1])
dp[i][0] = 1 - dp[i + 1][1];
if(dp[i][1] < 1 - dp[i + 1][0])
dp[i][1] = 1 - dp[i + 1][0];
}
if(dp[1][0] == 1)
fprintf(fout,"Nargy\n");
else
fprintf(fout,"Fumeanu\n");
}
}
fclose(fi);
fclose(fout);
return 0;
}