Cod sursa(job #18748)

Utilizator VmanDuta Vlad Vman Data 18 februarie 2007 13:54:26
Problema Amlei Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.12 kb
program amlei;
var n,t,u,i,j,k:integer;
    q:int64;
    p:array[0..51]of int64;
    v1,v2:array[1..501]of int64;
    {bitul j din v[i]=0 daca !a[j] si 1 daca a[j]}
    f,g:text;
begin
assign(f,'amlei.in');reset(f);
assign(g,'amlei.out');rewrite(g);
p[0]:=1;
for i:=1 to 51 do
    p[i]:=p[i-1] shl 1;
while not eof(f) do begin
      readln(f,n,t,u);
      {citesc si codific prima expresie}
      for i:=1 to t do begin
          v1[i]:=0;
          for j:=1 to n do begin
              read(f,k);
              if k>0 then v1[i]:=v1[i]+p[k];
          end;
      end;
      readln(f);
      {citesc si codific a 2-a expresie}
      for i:=1 to u do begin
          v2[i]:=0;
          for j:=1 to n do begin
              read(f,k);
              if k>0 then v2[i]:=v2[i]+p[k];
          end;
      end;
      readln(f);
      {verific echivalenta}
      {elimin A OR A=A}
     {1}
     i:=1;
     while i<=t do begin
         j:=i+1;
         while j<=t do begin
              if v1[i]=v1[j] then begin
                 v1[j]:=v1[t];
                 dec(t);
                 dec(j);
                 end;
              inc(j);
         end;
    inc(i);
    end;
     {2}
     i:=1;
     while i<=u do begin
         j:=i+1;
         while j<=u do begin
              if v2[i]=v2[j] then begin
                 v2[j]:=v2[u];
                 dec(u);
                 dec(j);
                 end;
              inc(j);
         end;
     inc(i);
     end;
    {fac expresie1 XOR expresie2}
    i:=1;
    while i<=t do begin
          j:=1;
          while j<=u do begin
                if v1[i]=v2[j] then begin
                               v1[i]:=v1[t];
                               v2[j]:=v2[u];
                               dec(i);
                               dec(j);
                               dec(u);
                               dec(t);
                               break;
                               end;
          inc(j);
          end;
   inc(i);
   end;
   if (u=0)and(t=0) then writeln(g,'DA')
      else writeln(g,'NU');
end;
close(f);
close(g);
end.