Pagini recente » Cod sursa (job #1307820) | Cod sursa (job #867802) | Cod sursa (job #2407376) | Cod sursa (job #1027320) | Cod sursa (job #71420)
Cod sursa(job #71420)
#include <stdio.h>
int n, t, u, e1[26000], e2[26000];
long long var;
FILE *f = fopen("amlei.in", "r");
FILE *g = fopen("amlei.out", "w");
inline GETBIT(int n) { return ((var >> n) & 1); }
void read(int a[], int n) {
int i;
for (i=0; i<n; ++i){
fscanf(f, "%d", &a[i]);
if (a[i] > 0) a[i]--;
else a[i]++;
}
}
int eval (int e[], int nr) {
int val_conj, rez, i, j;
for (rez = 0, j = 0; j < nr && !rez; j+=n) {
for (val_conj=1, i = 0; i < n && val_conj; ++i)
if (e[j + i] > 0)
if (!GETBIT(e[i + j])) val_conj=0;
else ;
else if (!(1 - GETBIT(-e[i + j]))) val_conj=0;
if (val_conj) rez = 1;
}
return rez;
}
int main() {
int echivalent;
while (fscanf(f, "%d %d %d", &n, &t, &u)==3) {
read(e1, n*t); read(e2, n*u);
for (echivalent=1, var=0; var < ((long long)1<<n) && echivalent; ++var)
if (eval(e1, n*t) != eval(e2, n*u))
echivalent = 0;
if (echivalent) fprintf(g, "DA\n");
else fprintf(g, "NU\n");
}
fclose(f);
fclose(g);
return 0;
}