Cod sursa(job #462528)

Utilizator SpiderManSimoiu Robert SpiderMan Data 11 iunie 2010 13:33:11
Problema Amlei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 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;
}