Cod sursa(job #2400641)

Utilizator tifui.alexandruTifui Ioan Alexandru tifui.alexandru Data 8 aprilie 2019 22:53:07
Problema Bowling Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <bits/stdc++.h>
#define Nmax 50005

using namespace std;

ifstream f("bowling.in");
ofstream g("bowling.out");

int dp[Nmax];
set <int> S;

int main(){

    for(int ans,i,j,n=1;n<=100;n++){

        S.clear();
        for(i=0,j=n-1;i<=j;i++,j--)
            S.insert(dp[i]^dp[j]);

        for(i=0,j=n-2;i<=j;i++,j--)
            S.insert(dp[i]^dp[j]);

        ans=0;
        while(!S.empty() and *S.begin()==ans){

            ++ans;
            S.erase(S.begin());
        }

        dp[n]=ans;
    }

    for(int i=101;i<=Nmax-5;i++)
        dp[i]=dp[i-12];

    int T,N,len,x,ans;
    f>>T;

    while(T--){

        f>>N;
        len=0;
        ans=0;
        for(int i=1;i<=N;i++){

            f>>x;
            if(x) ++len;
            else{

                ans^=dp[len];
                len=0;
            }
        }

        ans^=dp[len];
        g<<(ans ? "Nargy\n" : "Fumeanu\n");
    }

    return 0;
}