Cod sursa(job #2683576)

Utilizator patriciaxdBraica Patricia patriciaxd Data 11 decembrie 2020 17:08:51
Problema Nivele Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include<bits/stdc++.h>

using namespace std;
int k;
int v[50001];
ifstream in("nivele.in");
ofstream out("nivele.out");
int main()
{
    in>>k;
    int x,n;
    for(int j=1; j<=k; j++)
    {
        unsigned long long sum=0;
        int maxi=0;
        in>>n;
        for(int i=1; i<=n; i++)
        {
            in>>x;
            v[x]++;
            sum+=x;
            if(x>maxi)
                maxi=x;
        }
        bool ok=0;
        while(!ok)
        {
            ok=1;
            for(int i=maxi; i>=2; i--)
                if(v[i]&&v[i]%2==0)
                {
                    ok=0;
                    sum-=v[i]*i;
                    v[i-1]+=v[i]/2;
                    if(i!=2)
                    sum+=v[i]/2*v[i-1];
                    v[i]=0;
                    break;
                }
        }

        if(!sum)
            out<<"DA"<<'\n';
        else
            out<<"NU"<<'\n';
        for(int i=1; i<=maxi; i++)
            v[i]=0;
    }
    return 0;
}