Pagini recente » Cod sursa (job #1328257) | Cod sursa (job #769533) | Cod sursa (job #2919329) | Cod sursa (job #2919912) | Cod sursa (job #19394)
Cod sursa(job #19394)
#include <stdio.h>
#include <algorithm>
using namespace std;
const int N_MAX = 512;
int rez1[N_MAX], rez2[N_MAX], a[N_MAX], b[N_MAX];
int main()
{
freopen("amlei.in", "r", stdin);
freopen("amlei.out", "w", stdout);
int N, T, U, nr, i, j, x;
while (scanf("%d %d %d\n", &N, &T, &U) != EOF) {
memset(rez1, 0, sizeof(rez1));
memset(rez2, 0, sizeof(rez2));
for (i = 1, nr = 1; i <= N * T; i += N, nr ++) {
for (j = i; j < i + N; j ++) {
scanf("%d ", &x);
if (x > 0) {
rez1[nr] |= (1 << x);
}
}
}
for (i = 1, nr = 1; i <= N * U; i += N, nr ++) {
for (j = i; j < i + N; j ++) {
scanf("%d ", &x);
if (x > 0) {
rez2[nr] |= (1 << x);
}
}
}
/*for (i = 1; i < T; i ++) {
for (j = i + 1; j <= T; j ++) {
if ((rez1[i] ^ rez1[j]) == ((1 << (N + 1)) - 1)) {
rez1[i] = -1;
}
if ((rez2[i] ^ rez2[j]) == ((1 << (N + 1)) - 1)) {
rez2[i] = -1;
}
}
}*/
sort(rez1 + 1, rez1 + T + 1);
sort(rez2 + 1, rez2 + U + 1);
for (i = 2; i <= T; i ++) {
if (rez1[i] == rez1[i - 1]) {
rez1[i] = -1;
}
}
for (i = 2; i <= U; i ++) {
if (rez2[i] == rez2[i - 1]) {
rez2[i] = -1;
}
}
a[0] = 0, b[0] = 0;
for (i = 1; i <= T; i ++) {
if (rez1[i] != -1) {
a[++ a[0]] = rez1[i];
}
}
for (i = 1; i <= U; i ++) {
if (rez2[i] != -1) {
b[++ b[0]] = rez2[i];
}
}
for (i = 1; i <= a[0]; i ++) {
if (a[i] != b[i]) {
printf("NU\n");
break;
}
}
if (i == a[0] + 1) {
printf("DA\n");
}
}
return 0;
}