Cod sursa(job #2538842)

Utilizator 1chiriacOctavian Neculau 1chiriac Data 5 februarie 2020 11:02:40
Problema Nivele Scor 20
Compilator cpp-64 Status done
Runda simulare_miri Marime 0.62 kb
#include <bits/stdc++.h>

using namespace std;
int n,v[50005],minim,maxim,cnt,t;bool ok;
int main () {
	freopen("nivele.in","r",stdin);
	freopen("nivele.out","w",stdout);
	scanf("%d", &t);++t;
	while(--t) {
		scanf("%d", &n);ok=false;;maxim=-1;minim=1e9+3;
		for(int i=1;i<=n;++i)
			scanf("%d", &v[i]),minim=min(minim,v[i]),maxim=max(maxim,v[i]);
		if(minim==1 || maxim>n) {
			printf("NU\n");
			continue;
		}
		for(int i=1;i<=n;++i) {
			if(v[i]==maxim) {
				cnt=1;++i;
				while(i<=n && v[i]==cnt)
					++cnt;
				if((cnt & (cnt-1))!=0)
					printf("NU\n"),ok=true;
			}
		}
		if(ok==false)
			printf("DA\n");
	}
	return 0;
}