Cod sursa(job #20129)

Utilizator CezarMocanCezar Mocan CezarMocan Data 20 februarie 2007 19:22:35
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.