Pagini recente » Cod sursa (job #2700942) | Cod sursa (job #2783932) | Cod sursa (job #1740686) | Cod sursa (job #336356) | Cod sursa (job #2683488)
#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--)
{
while(w[i]==w[i+1] && i>=0)
s++,i--;
//out<<w[i+1]-w[i];
if(i>=0)
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;
}