Cod sursa(job #362553)

Utilizator ProtomanAndrei Purice Protoman Data 9 noiembrie 2009 23:01:00
Problema Bowling Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <algorithm>
#include <stdio.h>

#define MAX 50010

using namespace std;

int n, testCases;
int v[3];
int sg[MAX];

int main()
{
	freopen("bowling.in", "r", stdin);
	freopen("bowling.out", "w", stdout);

	sg[1] = 1;
	for (int i = 2; i < MAX; i++)
	{
		v[0] = v[1] = v[2] = 0;

		int x = 0;
		for (v[sg[i - 1]] = 1, v[sg[i - 2]] = 1; x < 3; x++)
			if (!v[x])
			{
				sg[i] = x;

				break;
			}
	}

	for (scanf("%d", &testCases); testCases; testCases--)
	{
		scanf("%d", &n);

		int sumXor = 0, l = 0;
		for (int i = 1; i <= n; i++)
		{
			int x;
			scanf("%d", &x);

			if (!x)
				sumXor ^= sg[l], l = 0;
		}
		sumXor ^= l;

		printf("%s\n", (sumXor)? "Nargy" : "Fumeanu");
	}

	fclose(stdin);
	fclose(stdout);
	return 0;
}