Pagini recente » Cod sursa (job #3216906) | Cod sursa (job #1911135) | Cod sursa (job #2054061) | Cod sursa (job #1361927) | Cod sursa (job #2478539)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
const int NMAX = 51;
const int TMAX = 501;
ifstream fin("amlei.in");
ofstream fout("amlei.out");
int N, T, U;
const bool op(const int x[], const int y[] )
{
for( int i = 1; i <= N; ++i )
{
if( x[i] < y[i] ) return 1;
if( x[i] > y[i] ) return 0;
}
}
bool comp( int x[], int y[] )
{
for( int i = 1; i <= N; ++i )
if( x[i] != y[i] )return 0;
return 1;
}
struct conjuctii
{
int c[NMAX];
bool operator < ( const conjuctii & A ) const
{
return op( c, A.c );
}
};
conjuctii CT[TMAX];
conjuctii CU[TMAX];
void Read()
{
while( fin >> N )
{
fin >> T >> U;
for( int i = 1; i <= T; ++i )
{
for( int j = 1; j <= N; ++j )
fin >> CT[i].c[j];
sort(CT[i].c + 1, CT[i].c + N + 1);
}
sort( CT + 1, CT + T + 1);
/*for( int i = 1; i <= T; ++i )
{
for( int j = 1; j <= N; ++j )
cout << CT[i].c[j] << ' ';
cout << '\n';
}cout << '\n';*/
for( int i = 1; i <= U; ++i )
{
for( int j = 1; j <= N; ++j )
fin >> CU[i].c[j];
sort(CU[i].c + 1, CU[i].c + N + 1);
}
sort( CU + 1, CU + U + 1);
bool ok = true;
for( int i = 0; i < T && ok; ++i )
{
ok = false;
for( int j = 0; j < U; ++j )
if(comp( CT[i].c, CU[j].c ) ) { ok = true; break; }
}
if( ok ) fout << "DA\n";
else fout << "NU\n";
}
}
int main()
{
Read();
return 0;
}