Cod sursa(job #19408)

Utilizator cheery_g1rlHaller Emanuela cheery_g1rl Data 19 februarie 2007 14:27:59
Problema Amlei Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.17 kb
program amlei;
type ss=string[3];
var f,g:text;
    n,lv,t,u,i,j,a:integer;
    v:array[1..500] of ss;
    s:ss;
    ok,ok1:boolean;

function val_(a:integer):char;
    begin
      val_:=chr(100+a);
    end;
procedure ordonare(var s:ss);
     var q:integer;
         w:char;
         ordo:boolean;
     begin
       repeat
         ordo:=true;
         for q:=1 to 2 do
            if s[q]>s[q+1] then
              begin
                ordo:=false;
                w:=s[q];
                s[q]:=s[q+1];
                s[q+1]:=w;
              end;
       until ordo;
     end;

begin
assign(f,'amlei.in');
reset(f);
assign(g,'amlei.out');
rewrite(g);
while not eof(f) do
   begin
     readln(f,n,t,u);
     lv:=0;
     for i:=1 to t do
        begin
          s:='';read(f,a);s:=s+val_(a);read(f,a); s:=s+val_(a); read(f,a);
          s:=s+val_(a);ordonare(s);
          ok:=true;
          j:=1;
          while (ok)and(j<=lv) do
            begin
               if v[j]=s then ok:=false;
              inc(j);
            end;
           if ok then
             begin
               inc(lv); v[lv]:=s;
             end;
        end;
        readln(f);
     if u<lv then begin writeln(g,'NU'); readln(f); end
             else
                begin
                  i:=1;
                  ok:=true;
                  while (ok)and(i<=u) do
                     begin
                       s:='';
                       read(f,a); s:=s+val_(a);
                       read(f,a); s:=s+val_(a);
                       read(f,a); s:=s+val_(a);
                       ordonare(s);
                       j:=1;
                       ok1:=false;
                       while(not ok1)and(j<=lv) do
                          begin
                            if v[j]=s then ok1:=true;
                            inc(j);
                          end;
                          if not ok1 then ok:=false;
                       inc(i);
                     end;
                    readln(f);
                    if ok then writeln(g,'DA')
                       else writeln(g,'NU');
                end;

   end;

close(g);
close(f);
end.