Cod sursa(job #1365695)

Utilizator retrogradLucian Bicsi retrograd Data 28 februarie 2015 14:25:24
Problema Bowling Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include<fstream>
#include<vector>
#include<cstring>

using namespace std;
typedef int var;

ifstream fin("bowling.in");
ofstream fout("bowling.out");

vector<var> V;

var SG[] = {1, 2, 3, 1, 4, 3, 2, 1, 4, 2, 6, 4, 1, 2, 7, 1, 4, 3, 2, 1, 4, 6, 7, 4, 1, 2, 8, 5, 4, 7, 2 ,1 ,8, 6, 7, 4};

var sg(var n) {
    if(n == 0) return 0;
    n--;
    var size = sizeof(SG)/sizeof(SG[0]);
    return SG[n%size];
}





int main() {

    var n, t;
    bool b;

    fin>>t;

    while(t--) {
        fin>>n;
        var nr = 0;
        V.clear();
        for(var i=1; i<=n; i++) {
            fin>>b;
            if(b == 1) {
                nr++;
            } else {
                if(nr)
                    V.push_back(nr);
                nr = 0;
            }
        }
        if(nr) {
            V.push_back(nr);
        }

        var rez = 0;
        for(auto v : V) {
            rez ^= sg(v);
        }

        if(rez == 0) {
            fout<<"Fumeanu\n";
        } else {
            fout<<"Nargy\n";
        }

    }
    return 0;
}