Cod sursa(job #2478537)

Utilizator Teo_1101Mititelu Teodor Teo_1101 Data 22 octombrie 2019 12:50:18
Problema Amlei Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.96 kb
#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;
long long CT[501];
long long CU[501];

void Read()
{
    while( fin >> N >> T >> U)
    {
        int x;
        for( int i = 1; i < TMAX; ++i )CT[i] = CU[i] = 0;

        for( int i = 1; i <= T; ++i )
        {
            for( int n = 1; n <= N; ++n )
            {
                fin >> x; //fout << CT[i] << ' '  << x << ' ';
                if( x > 0 )CT[i] = CT[i] | ( 1LL << x );//fout << CT[i] << '\n';
                //else if( CT[i] & ( 1LL << x ) ) CT[i] = CT[i] ^ ( 1LL << x );
            }
        }
        sort(CT+1, CT + T + 1);

        for( int i = 1; i <= U; ++i )
        {
            for( int n = 1; n <= N; ++n )
            {
                fin >> x;
                if( x > 0 )CU[i] = CU[i] | ( 1LL << x );
                //else if( CU[i] & ( 1LL << x ) ) CU[i] = CU[i] ^ ( 1LL << x );
            }
        }
        sort(CU + 1, CU + U + 1);

        //for( int i = 1; i <= T; ++i )fout << CT[i] << ' '; fout << '\n';
        //for( int i = 1; i <= U; ++i )fout << CU[i] << ' '; fout << '\n';

        if( T < U )
        {
            int it, iu;
            it = iu = 1;

            for( int iu = 1; iu <= U; ++iu )
            {
                if( CT[it] == CU[iu] )it++;
                if( it > T )break;
            }
            if( it <= T ) fout << "NU" << '\n';
            else fout << "DA" << '\n';

        }
        else
        {
            int it, iu;
            it = iu = 1;

            for( int it = 1; it <= T; ++it )
            {
                if( CT[it] == CU[iu] )iu++;
                if( iu > U )break;
            }
            if( iu <= U ) fout << "NU" << '\n';
            else fout << "DA" << '\n';
        }
    }
}
int main()
{
    Read();
    return 0;
}