Cod sursa(job #20087)

Utilizator CezarMocanCezar Mocan CezarMocan Data 20 februarie 2007 18:48:30
Problema Amlei Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 3.13 kb
type exp=record
              a,b,c:longint;
        end;

var v1,v2:array[1..510]of exp;
    n,m,p,i,j,max,min,s,k:longint;
    ok:boolean;

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
          begin
          read(v1[i].a,v1[i].b,v1[i].c);
          max:=v1[i].a;
          if v1[i].b>max then
             max:=v1[i].b;
          if v1[i].c>max then
             max:=v1[i].c;
          min:=v1[i].a;
          if v1[i].b<min then
             min:=v1[i].b;
          if v1[i].c<min then
             min:=v1[i].c;
          s:=v1[i].a+v1[i].b+v1[i].c;
          v1[i].a:=min;
          v1[i].c:=max;
          v1[i].b:=s-max-min;
          end;
      for i:=1 to p do
          begin
          read(v2[i].a,v2[i].b,v2[i].c);
          max:=v2[i].a;
          if v2[i].b>max then
             max:=v2[i].b;
          if v2[i].c>max then
             max:=v2[i].c;
          min:=v2[i].a;
          if v2[i].b<min then
             min:=v2[i].b;
          if v2[i].c<min then
             min:=v2[i].c;
          s:=v2[i].a+v2[i].b+v2[i].c;
          v2[i].a:=min;
          v2[i].c:=max;
          v2[i].b:=s-max-min;
          end;
          for i:=1 to m-1 do
              begin
              for j:=i+1 to m do
                  if (v1[i].a=v1[j].a)and(v1[i].b=v1[j].b)and(v1[i].c=v1[j].c)
                     then begin
                     dec(m);
                     for k:=j to m do
                         v1[k]:=v1[k+1];
                     end;
              end;
          for i:=1 to p-1 do
              begin
              for j:=i+1 to p do
                  if (v2[i].a=v2[j].a)and(v2[i].b=v2[j].b)and(v2[i].c=v2[j].c)
                     then begin
                     dec(p);
                     for k:=j to p do
                         v2[k]:=v2[k+1];
                     end;
              end;
      for i:=1 to m do
          begin
          ok:=false;
          for j:=1 to p do
              if (v1[i].a=v2[j].a)and(v1[i].b=v2[j].b)and(v1[i].c=v2[j].c)
                 then begin
                 ok:=true;
                 break;
                 end;
{          if m<>p then
             ok:=false;}
          if not ok then
             begin
             writeln('NU');
             break;
             ok:=false;
             end;
          end;
      if ok then
      for i:=1 to p do
          begin
          ok:=false;
          for j:=1 to m do
              if (v1[j].a=v2[i].a)and(v1[j].b=v2[i].b)and(v1[j].c=v2[i].c)
                 then begin
                 ok:=true;
                 break;
                 end;
{          if m<>p then
             ok:=false;}
          if not ok then
             begin
             writeln('NU');
             break;
             ok:=false;
             end;
          end;
      if ok then
         writeln('DA');
      readln(n,m,p);
      end;
close(input);close(output);
end.