Pagini recente » Cod sursa (job #1093243) | Cod sursa (job #1671972) | Cod sursa (job #1892622) | Cod sursa (job #3187270) | Cod sursa (job #2477793)
#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);
if( T < U )
{
int i = 1, j = 1;
while( i <= T && j <= U )
{
if( comp( CT[i].c, CU[j].c ) == 1 )i++;
j++;
}
if( i == T + 1 )fout << "DA" << '\n';
else fout << "NU" << '\n';
}
else
{
int i = 1, j = 1;
while( i <= U && j <= T )
{
if( comp( CU[i].c, CT[j].c ) == 1 )i++;
j++;
}
if( i == U + 1 )fout << "DA" << '\n';
else fout << "NU" << '\n';
}
}
}
int main()
{
Read();
return 0;
}