Pagini recente » Cod sursa (job #3180319) | Cod sursa (job #33029) | Cod sursa (job #2438027) | Cod sursa (job #1660361) | Cod sursa (job #19171)
Cod sursa(job #19171)
#include <stdio.h>
#include <algorithm>
using namespace std;
#define mid 50
#define maxx 110
#define maxn 5010
int n,m,l;
int a[maxn],b[maxn],c[maxn],d[maxn],x[maxn],y[maxn];
int egal(int x,int y)
{
int i;
memset(c,0,sizeof(c));
memset(d,0,sizeof(d));
for (i=1;i<=n;i++)
{
c[a[i+x]+mid]++;
d[b[i+y]+mid]++;
}
for (i=0;i<maxx;i++)
if (c[i]!=d[i]) return 0;
return 1;
}
int main()
{
freopen("amlei.in","r",stdin);
freopen("amlei.out","w",stdout);
int i,j,found;
while (!feof(stdin))
{
scanf("%d %d %d",&n,&m,&l);
if ((n==0) && (m==0) && (l==0)) break;
for (i=1;i<=m*n;i++) scanf("%d ",&a[i]);
for (i=1;i<=l*n;i++) scanf("%d ",&b[i]);
for (i=1;i<=m;i++)
{
x[i]=0;
for (j=1;j<=n;j++) x[i]+=a[(i-1)*n+j];
// sort(a+(i-1)*n+1,a+i*n+1);
}
for (i=1;i<=l;i++)
{
y[i]=0;
for (j=1;j<=n;j++) y[i]+=b[(i-1)*n+j];
// sort(b+(i-1)*n+1,b+i*n+1);
}
for (i=1;i<=m;i++)
{
found=0;
for (j=1;j<=l;j++)
if ((x[i]==y[j]) && (egal((i-1)*n,(j-1)*n)))
{
found=1;
break;
}
if (!found)
{
printf("NU\n");
break;
}
}
if (found) printf("DA\n");
}
return 0;
}