Cod sursa(job #677067)

Utilizator danalex97Dan H Alexandru danalex97 Data 9 februarie 2012 20:41:05
Problema Amlei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.35 kb
# include <cstdio>
# include <algorithm>
# include <cstring>
using namespace std;

const char FIN[] = "amlei.in", FOU[] = "amlei.out";
const int MAX = 504;

int N, T, U;
int A[MAX], B[MAX];

inline bool comp ( int A[], int B[], int N )
{
    for (int i = 0; i < N; ++i)
        if ( A[i] != B[i] ) return 0;

    return 1;
}

int main()
{
    freopen ( FIN, "r", stdin ) ;
    freopen ( FOU, "w", stdout ) ;

    while ( scanf ( "%d %d %d", &N, &T, &U ) == 3 )
    {
        memset ( A , 0 , sizeof ( A ) ) , memset ( B , 0 , sizeof ( B ) ) ;

        for (int i = 0, k = 0; i < T; i++, k++)
        {
            for (int j = 0, X = 0; j < N; j++)
            {
                scanf ("%d", &X ) ;
                X < 0 ? A[ k ] |= 1 << ( -X - 1 ) : 0 ;
            }

            if ( i != T - 1 ) continue;

            sort ( A, A + T ), unique( A, A + T ) ;
        }

        for (int i = 0, k = 0; i < U; i++, k++)
        {
            for (int j = 0, X = 0; j < N; j++)
            {
                scanf ("%d", &X ) ;
                X < 0 ? B[ k ] |= 1 << ( -X - 1 ) : 0 ;
            }

            if ( i != U - 1 ) continue;

            sort ( B, B + U ) ;

            k -= k - (unique( B, B + U ) - B);

            printf ( "%s\n", ( comp ( A , B , k ) ) ? "DA" : "NU" );
        }
    }

    return 0;
}