Pagini recente » Cod sursa (job #1843257) | Cod sursa (job #577388) | Cod sursa (job #2427655) | Cod sursa (job #3198450) | Cod sursa (job #1086371)
#include <cstdio>
#include <cstring>
#include <set>
#include <iostream>
using namespace std;
const int BUFF_MAX = 1000000;
int T, poz, ans[100];
set<int> S;
char buff[BUFF_MAX];
inline int getInt() {
while(!isdigit(buff[poz]))
if(++poz == BUFF_MAX) {
fread(buff, 1, BUFF_MAX, stdin);
poz = 0;
}
int ans = 0;
while(isdigit(buff[poz])) {
ans = ans * 10 + buff[poz++] - '0';
if(poz == BUFF_MAX) {
fread(buff, 1, BUFF_MAX, stdin);
poz = 0;
}
} return ans;
}
void preprocess() {
for(int i = 1; i <= 83; i++) {
for(int j = 1; j <= i; j++) {
S.insert(ans[j - 1] ^ ans[i - j]);
if(j + 1 <= i) S.insert(ans[j - 1] ^ ans[i - (j + 1)]);
}
for(int j = 0; ; j++)
if(!S.count(j)) {
ans[i] = j;
break;
} S.clear();
}
}
inline int getValue(int A) {
if(A < 72) return ans[A];
return ans[(A - 72) % 12 + 72];
}
int main() {
freopen("bowling.in", "r", stdin);
freopen("bowling.out", "w", stdout);
preprocess();
fread(buff, 1, BUFF_MAX, stdin);
for(int i = 1; i <= 83; i++)
printf("%d\n", ans[i]);
for(T = getInt(); T; T--) {
int N = getInt(), perioada = 0, ans = 0;
for(int i = 1, A; i <= N; i++) {
A = getInt();
if(A) perioada++;
if(!A && perioada) {
ans ^= getValue(perioada);
perioada = 0;
}
}
if(perioada) ans ^= getValue(perioada);
printf("%s\n", (ans ? "Nargy" : "Fumeanu"));
} fclose(stdin); fclose(stdout);
}