Letöltés: dk_varazslat.pas program magic; type ellentet=record c1,c2:char; end; kombinal=record c1,c2,c3:char; end; var be,ki:text; T,C,D,N,i,q,w: byte; x:kombinal; y:ellentet; komb:array[1..36] of kombinal; ell:array[1..28] of ellentet; ossz:array[1..100] of char; asd:string; d1:char; Procedure beolvas; begin asd:=''; read(be,C); if C>0 then begin for i:=1 to C do begin read(be,d1); read(be,komb[i].c1); read(be,komb[i].c2); read(be,komb[i].c3); end; end; read(be,D); if D>0 then begin for i:=1 to D do begin read(be,d1); read(be,ell[i].c1); read(be,ell[i].c2); end; end; read(be,N); read(be,d1); end; procedure kombinale(a:kombinal); var j:byte; begin for j:=1 to C do begin if ((a.c1=komb[j].c1) and (a.c2=komb[j].c2)) or ((a.c2=komb[j].c1) and (a.c1=komb[j].c2)) then begin asd:=copy(asd,1,(length(asd)-2)); asd:=asd+komb[j].c3; end; end; end; procedure ellentete(a:ellentet); var j,k:byte; l,m:boolean; begin for j:=1 to D do begin l:=false; m:=false; for k:=1 to length(asd) do begin if asd[k]=ell[j].c1 then l:=true; if asd[k]=ell[j].c2 then m:=true; end; if m and l then asd:=''; end; end; begin assign(be,'m2.in'); assign(ki,'m2.out'); reset(be); rewrite(ki); readln(be,T); for q:=1 to T do begin beolvas; if N>0 then begin for i:=1 to N do begin read(be,ossz[i]); asd:=asd+ossz[i]; x.c2:=asd[length(asd)]; x.c1:=asd[(length(asd)-1)]; x.c3:=' '; kombinale(x); y.c1:=asd[length(asd)]; y.c2:=asd[(length(asd)-1)]; ellentete(y); end; end; write(ki,'Case #',q,': ['); if length(asd)>0 then for w:=1 to length(asd) do begin if (w=1) and (w=length(asd)) then write(ki,asd[w]) else if w=1 then write(ki,asd[w],',') else if w=length(asd) then write(ki,' ',asd[w]) else write(ki,' ',asd[w],','); end; writeln(ki,']'); end; close(be); close(ki); end. |