Pagini recente » Cod sursa (job #1483879) | Cod sursa (job #1352887) | Cod sursa (job #2741835) | Cod sursa (job #2350211) | Cod sursa (job #2683547)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("nivele.in");
ofstream out("nivele.out");
int v[50001];
int la2(int x)
{
int s = 1;
while(x)
{
s = s * 2;
x = x- 1;
}
return s;
}
int tricolor(int a, int b)
{
int y = 1;
for(int i = a; i < b; i ++)
{
y = y * 2;
}
return y;
}
int verf(int v[], int n)
{
sort(v + 1, v + n + 1);
int k = la2(v[1] - 1) - 1;
int l = 2;
while(l <= n)
{
if(v[l] == v[l-1])
k = k - 1;
if(v[l] != v[l-1])
{
int h = tricolor(v[l-1],v[l]);
k = k * h - 1;
}
l = l + 1;
}
if( k == 0 )
return 1;
else
return 0;
}
int main()
{
int t, j, n, a, i;
in >> t;
for(j = 1; j <= t; j ++)
{
in >> n;
for(i = 1; i <= n; i ++ )
{
in >> a;
v[i] = a;
}
if(verf(v, n))
out << "DA" << '\n';
else
out << "NU" << '\n';
}
return 0;
}