Pagini recente » Cod sursa (job #2415750) | Cod sursa (job #2279139) | Cod sursa (job #2793476) | Cod sursa (job #1663092) | Cod sursa (job #476636)
Cod sursa(job #476636)
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
int a[50010];
int main(){
ifstream f("nivele.in");
ofstream g("nivele.out");
int n, t, i, j, k, x, val, aval;
long long anr, nr;
f>>t;
for (k = 1; k <= t; k++){
f>>n;
for (i = 1; i <= n; i++)
f>>a[i];
sort(a+1, a+n+1);
aval = a[1];
anr = 1<<(aval-1);
i = 1;
while (i <= n){
val = a[i];
while (aval != val){
anr = anr*2;
aval++;
}
nr = 0;
while (i <= n && a[i] == val){
nr++;
i++;
}
if (anr == nr)
if (i == n+1)
g<<"DA"<<'\n';
else {
g<<"NU"<<'\n';
break;
}
else
if (nr < anr)
if (i == n+1)
g<<"NU"<<'\n';
else {
anr = 2*(anr - nr);
aval = a[i];
}
else {
g<<"NU"<<'\n';
break;
}
}
}
return 0;
}