Pagini recente » Cod sursa (job #210275) | Cod sursa (job #1677125) | Cod sursa (job #3276326) | Cod sursa (job #2951673) | Cod sursa (job #1155920)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
const int NMax = 64;
inline bool cmp(const int &x, const int &y)
{
return abs(x) < abs(y);
}
int n, t, u;
int a[NMax];
map <long long, bool> mpa, mpb;
int main()
{
ifstream f("amlei.in");
ofstream g("amlei.out");
while(f >> n)
{
f >> t >> u;
for (int i = 1, pas = 1; i <= n * t; ++ i)
{
f >> a[pas];
++ pas;
if (pas > n)
{
sort(a+1, a+n+1, cmp);
long long nr = 0LL;
for (int j = 1; j <= n; ++ j)
nr += (a[j] > 0 ? 1 : 0) * (1LL << (1LL*j-1LL));
mpa[nr] = true;
pas = 1;
}
}
for (int i = 1, pas = 1; i <= n * u; ++ i)
{
f >> a[pas];
++ pas;
if (pas > n)
{
sort(a+1, a+n+1, cmp);
long long nr = 0LL;
for (int j = 1; j <= n; ++ j)
nr += (a[j] > 0 ? 1 : 0) * (1LL << (1LL*j-1LL));
mpb[nr] = true;
pas = 1;
}
}
bool ok = true;
for (map <long long, bool> :: iterator it = mpa.begin(); ok && it != mpa.end(); ++ it)
if (!mpb[it -> first])
{
g<<"NU\n";
ok = false;
}
for (map <long long, bool> :: iterator it = mpb.begin(); ok && it != mpb.end(); ++ it)
if (!mpa[it -> first])
{
g<<"NU\n";
ok = false;
}
if (ok)
g<<"DA\n";
mpa.clear();
mpb.clear();
}
f.close();
g.close();
return 0;
}