Cod sursa(job #2538918)
Utilizator | 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;
}