Cod sursa(job #1695001)

Utilizator sucureiSucureiRobert sucurei Data 26 aprilie 2016 13:58:00
Problema Amlei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.49 kb
#include <cstdio>
#include <algorithm>
#include <vector>
#include <cstring>

using namespace std;

#define MAXN 505

int N, A, B;
long long a[MAXN],b[MAXN];

int comp ( long long a[], long long b[], int n )
{
    for (int i = 0; i < n; ++i)
       if ( a[i] != b[i] ) return 0;
    return 1;
}

int main()
{
    freopen("amlei.in", "rt", stdin);
    freopen("amlei.out", "wt", stdout);

    for ( ; scanf("%d %d %d", &N, &A, &B) != EOF; )
    {
        int i, j, l,ll = 0,lll = 0;long long x;
        memset(a,0,sizeof(a)), memset(b,0,sizeof(b));//a.clear(); b.clear();
        for (i = 0, ll = 0; i < A; i++,ll++)
        {
            //x = 0;
            for (j = 0; j < N; j++)
            {
                scanf("%d", &l);
                if (l < 0)
                    a[ll] |= (1 << (-l - 1));
            }
        }
        sort(a, a + ll);
        int aux =  unique( a, a + ll ) - a;
        ll -= ll - aux;
        //for (int i = 0; i < ll; ++i) printf("%d", a[i]);printf("\n");
        for (i = 0, ll = 0; i < B; i++, ll++)
        {
            for (j = 0; j < N; j++)
            {
                scanf("%d", &l);
                if (l < 0)
                    b[ll] |= (1 << (-l - 1));
            }
        }
        sort(b, b + ll);
        aux =  unique( b, b + ll ) - b;
        ll -= ll - aux;
        //for (int i = 0; i < ll; ++i) printf("%d", b[i]);printf("\n");
        printf("%s\n", (comp(a,b,ll)) ? "DA" : "NU");
    }
    return 0;
}