/*
hadamard.c -- C-uitwerking van de NKP'97-opgave "Hadamard"
(c) 01/09/'97 Meinte Boersma
*/
#include <stdio.h>
#define max 1000
#define TRUE 1
typedef int bucketsort[max+1];
typedef struct {
bucketsort rijbucket, kolombucket;
} Hmatrix;
int I, n, run;
void leesHadamard (Hmatrix *H)
{
int i, j, aantal, getal;
typedef int tabel[max+1];
tabel rijeen, kolomeen;
/* buckets legen */
for (i=0; i<=n; i++) {
H->rijbucket[i] = 0;
H->kolombucket[i] = 0;
}
/* 1_i (H^t) initialiseren */
for (i=1; i<=n; i++) {
kolomeen[i] = 0;
}
/* matrix lezen en 1_i (H(t)), rij-bucket bijhouden */
for (i=1; i<=n; i++) {
aantal = 0;
for (j=1; j<=n; j++) {
scanf("%d", &getal);
if (getal==1) {
aantal++;
kolomeen[j]++;
}
}
rijeen[j] = aantal;
H->rijbucket[aantal]++;
}
/* kolom-bucket bepalen */
for (j=1; j<=n; j++) {
aantal = kolomeen[j];
H->kolombucket[aantal]++;
}
}
void instantie (void)
{
int t, equivalent;
Hmatrix H1, H2;
scanf("%d", &n);
leesHadamard(&H1);
leesHadamard(&H2);
/* buckets matchen */
t = 0;
equivalent = TRUE;
while (equivalent && (t<=n)) {
equivalent = ((H1.rijbucket[t]==H2.rijbucket[t]) &&
(H1.kolombucket[t]==H2.kolombucket[t]));
t++;
}
/* buckets gelijk ==> H1 ~ H2 */
if (equivalent) {
printf("equivalent\n");
} else {
printf("niet equivalent\n");
}
}
int main (void)
{
scanf("%d", &I);
for (run=0; run<I; run++) {
instantie();
};
return(0);
}
Generated by Java2Html