Cod sursa(job #1730706)

Utilizator alexandra_udristoiuUdristoiu Alexandra Maria alexandra_udristoiu Data 17 iulie 2016 15:08:59
Problema Bowling Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include<fstream>
#include<bitset>
using namespace std;
int t, n, i, j, nr, sol, x;
int sg[50005];
bitset<200> f;
ifstream fin("bowling.in");
ofstream fout("bowling.out");
int main(){
    sg[0] = 0;
    sg[1] = 1;
    for(i = 2; i <= 90; i++){
        f.reset();
        for(j = 0; j < i; j++){
            f[ sg[j] ^ sg[i - j - 1]] = 1;
            if(j != i - 1){
                f[ sg[j] ^ sg[i - j - 2] ] = 1;
            }
        }
        for(j = 0; j <= i + i; j++){
            if(f[j] == 0){
                sg[j] = 0;
                break;
            }
        }
    }
    for(i = 91; i <= 50000; i++){
        sg[i] = sg[i - 12];
    }
    fin>> t;
    for(; t; t--){
        fin>> n;
        sol = nr = 0;
        for(i = 1; i <= n; i++){
            fin>> x;
            if(x == 1){
                nr++;
            }
            else{
                sol = (sol ^ sg[nr]);
                nr = 0;
            }
        }
        sol = (sol ^ sg[nr]);
        if(sol == 0){
            fout<<"Fumeanu\n";
        }
        else{
            fout<<"Nargy\n";
        }
    }
    return 0;
}