Pagini recente » Cod sursa (job #2339430) | Cod sursa (job #1915923) | Cod sursa (job #2885811) | Cod sursa (job #955570) | Cod sursa (job #2683481)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream in("nivele.in");
ofstream out("nivele.out");
int t,v[17];
void init()
{
for(int i=1,j=0;i<=50000;i*=2,j++)
v[j]=i;
}
bool rez(vector<int> w,int n)
{
int s=1;
for(int i=n-2;i>=0;i--)
{
if(w[i]==w[i+1])
s++;
else
{
//out<<w[i+1]-w[i];
if(s%v[w[i+1]-w[i]]==0)
s/=v[w[i+1]-w[i]],s++;
else
return 0;
//out<<' '<<s<<'\n';
}
}
return 1;
}
void cit()
{
int n;
vector<int> w;
in>>n;
for(int i=0; i<n; i++)
{
int x;
in>>x;
w.push_back(x);
}
sort(w.begin(),w.end());
if(rez(w,n))
out<<"DA"<<'\n';
else
out<<"NU"<<'\n';
}
int main()
{
in>>t;
init();
for(int i=0;i<t;i++)
cit();
return 0;
}