Az alábbi letöltési lehetőségek közül választhatsz: (
segítség)
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: us-ascii
Méret: 1 KB
program szojat;
var so,be,ki:text;
szot:array[1..1337] of string; szdb:integer; szab:integer;
i,j:integer; c:string; kez, veg: integer;
graf:array[1..1337,1..1337] of byte;
sor:array[1..1337] of integer; s1, s2: integer;
tav,apa:array[1..1337] of integer;
procedure szome(a,b:integer);
var ii:integer; hk:integer; db:integer;
begin db:=0;
hk:=length(szot[b])-length(szot[a]);
if hk<0 then begin ii:=a; a:=b; b:=ii; hk:=0-hk; end;
for ii:=1 to length(szot[a]) do if szot[a][ii]<>szot[b][ii] then inc(db);
if (hk=0) and (db=1) then begin graf[a,b]:=1; graf[b,a]:=1; end;
if ((hk=1) and (db=0)) and (szab=2) then graf[a,b]:=1;
end;
begin
assign(so,'SZOTAR.BE'); reset(so);
readln(so,szdb);
for i:=1 to szdb do readln(so,szot[i]);
close(so);
assign(be,'JATEK.BE'); reset(be);
readln(be,c); if (c='A') or (c='a') then szab:=1 else szab:=2;
readln(be,c); for i:=1 to szdb do if szot[i]=c then kez:=i;
readln(be,c); for i:=1 to szdb do if szot[i]=c then veg:=i;
close(be);
for i:=1 to szdb do for j:=1 to szdb do graf[i,j]:=0;
for i:=1 to szdb do for j:=1 to szdb do szome(i,j);
for i:=1 to szdb do begin tav[i]:=-1; apa[i]:=0; end;
sor[1]:=kez; s1:=1; s2:=1; tav[kez]:=0; apa[kez]:=kez;
while s1<=s2 do begin
for i:=1 to szdb do if (apa[i]=0) and (graf[sor[s1],i]>0) then begin
apa[i]:=sor[s1]; tav[i]:=tav[sor[s1]]+1; inc(s2); sor[s2]:=i;
end;
inc(s1);
end;
assign(ki,'JATEK.KI'); rewrite(ki);
if tav[veg]=-1 then writeln(ki,'NEM') else writeln(ki,'IGEN ',tav[veg]);
for i:=1 to szdb do if tav[i]>-1 then write(ki,szot[i],' ');
close(ki);
end.