Cod sursa(job #20123)
Utilizator | Data | 20 februarie 2007 19:19:22 | |
---|---|---|---|
Problema | Amlei | Scor | 50 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 3.01 kb |
type exp=array[1..53]of longint;
var v1,v2:array[1..510]of exp;
aux,n,m,p,i,j,k:longint;
ok:boolean;
function egal(var a,b:exp):boolean;
var i:longint;
begin
egal:=true;
for i:=1 to n do
if a[i]<>b[i] then
begin
egal:=false;
exit;
end;
end;
begin
assign(input,'amlei.in');reset(input);
assign(output,'amlei.out');rewrite(output);
readln(n,m,p);
while not eof do
begin
if (n=0)or(m=0)or(p=0) then
begin
close(output);
halt;
end;
for i:=1 to m do
for j:=1 to n do
read(v1[i,j]);
for i:=1 to p do
for j:=1 to n do
read(v2[i,j]);
for i:=1 to m do
for j:=1 to n-1 do
for k:=j+1 to n do
if v1[i,j]>v1[i,k] then
begin
aux:=v1[i,j];
v1[i,j]:=v1[i,k];
v1[i,k]:=aux;
end;
for i:=1 to p do
for j:=1 to n-1 do
for k:=j+1 to n do
if v2[i,j]>v2[i,k] then
begin
aux:=v2[i,j];
v2[i,j]:=v2[i,k];
v2[i,k]:=aux;
end;
for i:=1 to m-1 do
for j:=i+1 to m do
if egal(v1[i],v1[j]) then
begin
dec(m);
for k:=j to m do
v1[k]:=v1[k+1];
end;
for i:=1 to p-1 do
for j:=i+1 to p do
if egal(v2[i],v2[j]) then
begin
dec(p);
for k:=j to p do
v2[k]:=v2[k+1];
end;
ok:=false;
if m=p then
begin
for i:=1 to m do
begin
ok:=false;
for j:=1 to p do
if egal(v1[i],v2[j]) then
begin
ok:=true;
break;
end;
if not ok then
break;
end;
if ok then
for i:=1 to p do
begin
ok:=false;
for j:=1 to m do
if egal(v1[j],v2[i]) then
begin
ok:=true;
break;
end;
if not ok then
break;
end;
end;
if ok then
writeln('DA')
else
writeln('NU');
readln(n,m,p);
end;
close(input);close(output);
end.