Cod sursa(job #2538918)

Utilizator bogdi1bogdan bancuta bogdi1 Data 5 februarie 2020 12:38:31
Problema Nivele Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>

using namespace std;
int v[50005];
int main()
{   freopen("nivele.in", "r", stdin);
    freopen("nivele.out", "w", stdout);
    int t,i,pas,nr,n;
    scanf("%d", &t);
    while(t){
        scanf("%d", &n);
        for(i=1; i<=n; i++)
            scanf("%d", &v[i]);
        pas=1;
        nr=1;
        for(i=1; i<=n; i++){
            if(v[i]-pas>=32){
                printf("NU\n");
                break;
            }
            else{
                if(nr*1LL*(1<<(v[i]-pas))>n-i+1){
                    printf("NU\n");
                    break;
                }
                nr=nr*1LL*(1<<(v[i]-pas));
                nr--;
                pas=v[i];
            }
        }
        if(i==n+1 && nr==0)
            printf("DA\n");
        else
            if(i==n+1)
                printf("NU\n");
        t--;
    }
    return 0;
}