Cod sursa(job #40590)

Utilizator snaked31Stanica Andrei snaked31 Data 27 martie 2007 15:37:15
Problema Bowling Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 3.13 kb
#include <stdio.h>
#include <vector>
#include <algorithm>

using namespace std;

const int g[] = {0, 
1, 2, 0, 1, 2, 3, 1, 4, 3, 6, 0, 3, 2, 7, 4, 
2, 7, 4, 5, 3, 0, 1, 8, 7, 5, 4, 9, 6, 0, 9, 
2, 10, 1, 6, 7, 9, 8, 3, 10, 1, 7, 2, 15, 4, 6, 
11, 0, 1, 2, 4, 5, 2, 3, 5, 8, 3, 11, 1, 12, 2, 
15, 5, 8, 11, 16, 8, 18, 10, 5, 12, 13, 5, 8, 7, 16, 
4, 9, 6, 17, 13, 8, 17, 16, 8, 18, 14, 12, 18, 14, 15, 
7, 19, 11, 21, 9, 22, 14, 13, 8, 14, 16, 8, 9, 10, 21, 
9, 6, 11, 9, 2, 11, 10, 8, 18, 10, 25, 13, 10, 2, 8, 
10, 11, 3, 9, 11, 17, 16, 12, 10, 16, 6, 18, 14, 24, 1, 
14, 15, 9, 0, 5, 20, 13, 5, 14, 24, 12, 4, 20, 8, 18, 
20, 6, 9, 19, 16, 13, 32, 11, 6, 12, 19, 10, 12, 22, 0, 
11, 21, 5, 26, 17, 19, 1, 32, 3, 35, 5, 28, 25, 31, 16, 
25, 34, 23, 32, 8, 23, 36, 24, 16, 1, 32, 20, 8, 11, 36, 
34, 1, 7, 21, 18, 23, 6, 13, 4, 30, 7, 25, 27, 32, 20, 
38, 14, 36, 28, 42, 7, 32, 35, 11, 32, 28, 36, 21, 41, 29, 
35, 13, 2, 42, 44, 33, 24, 41, 37, 38, 25, 26, 33, 44, 5, 
9, 49, 25, 31, 32, 6, 34, 26, 12, 15, 14, 37, 3, 25, 48, 
19, 21, 15, 9, 52, 11, 4, 18, 33, 10, 22, 45, 24, 49, 8, 
41, 25, 48, 22, 50, 28, 27, 52, 11, 36, 52, 33, 10, 30, 22, 
40, 20, 13, 19, 20, 47, 32, 44, 50, 32, 18, 14, 58, 48, 36, 
4, 30, 18, 25, 5, 49, 3, 10, 58, 8, 37, 17, 3, 23, 41, 
13, 19, 60, 16, 43, 18, 33, 58, 35, 19, 16, 21, 8, 40, 50, 
52, 23, 26, 20, 48, 54, 55, 2, 49, 45, 58, 25, 64, 50, 7, 
8, 11, 21, 52, 39, 41, 16, 49, 60, 11, 17, 23, 40, 33, 48, 
61, 64, 16, 23, 18, 31, 6, 18, 26, 48, 35, 19, 65, 43, 8, 
5, 37, 66, 22, 15, 63, 35, 23, 11, 62, 4, 27, 16, 24, 60, 
68, 28, 39, 64, 16, 2, 15, 26, 58, 35, 41, 20, 64, 19, 30, 
32, 24, 60, 31, 41, 39, 11, 19, 17, 46, 26, 58, 11, 61, 64, 
51, 38, 15, 55, 66, 70, 27, 62, 39, 4, 9, 24, 66, 26, 64, 
34, 1, 30, 41, 66, 15, 49, 25, 60, 31, 58, 15, 56, 4, 55, 
66, 26, 64, 21, 47, 68, 59, 55, 31, 63, 25, 14, 47, 29, 11, 
30, 52, 28, 14, 26, 64, 25, 61, 27, 54, 61, 74, 26, 51, 10, 
48, 64, 24, 66, 58, 65, 66, 26, 65, 34, 15, 30, 68, 71, 42, 
64, 24, 56, 30, 68};

vector <int> u;

#define nm 50010

int v[nm], l[nm], i, sol, n;


void read()

{
	scanf("%d", &n);

    for (i=1; i<=n; ++i)
    	scanf("%d ", &v[i]);
}


void solve()

{
	u.clear();

    l[0] = 0;
    v[0] = 0;
    
    for (i=1; i<=n + 1; ++i)
    {
        if (v[i] == 0)
        {
            if (v[i-1] == 1)
            {
                u.push_back(l[i-1]);
            }
        }
    	else
        {
            if (v[i-1] == 1)
            	l[i] = l[i-1] + 1;
            else
            	l[i] = 1;
        }
    }

    int tmp = 0;
    
    for (i=0; i<u.size(); ++i)
    {
//        u[i] %= 3;
    	tmp = tmp ^ g[u[i]];
    }

    sol = 1;

    if (tmp == 0)
    	sol = 0;

}


void write()

{
    if (sol == 1)
    {
        printf("Nargy\n");
    }
    else
    	printf("Fumeanu\n");
}


int main()

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

    int t;

    scanf("%d", &t);

    for (; t>0; --t)
    {

    	read();
    	solve();
    	write();

    }

    fclose(stdin);
    fclose(stdout);

	return 0;
}