Cod sursa(job #3165966)

Utilizator Beverita2345Bretan Alexandru Beverita2345 Data 7 noiembrie 2023 11:47:27
Problema Nivele Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("nivele.in");
ofstream out("nivele.out");

bool solve(){
    int n;
    in>>n;
    map<int,int>mp;

    for(int i(0);i<n;i++){
        int x;
        in>>x;
        mp[--x]++;
    }

    map<int,int>::iterator i = mp.end();

    while(i!=mp.begin()){
        map<int,int>::iterator j=i;
        --j;
        --j;
        j->second+=(i->second)/2;
        if(j==mp.begin())break;
        --i;
    }

    int cnt(1);

    for(auto i: mp){
        if(cnt!=i.first)return false;
        if(i.second%2!=0)return false;
        cnt++;
    }

    return true;
}

int main(){
    int t;

    in>>t;

    while(t--){
        if(solve())out<<"DA\n";
        else out<<"NU\n";
    }


    return 0;
}