{$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,R+,S+,V+,X-} {$M 16384,0,655360} Var f:text; r,n,k,i,j,c,uf,se,ner,x:integer; fr,frer:array[1..34] of integer; st:array[1..34] of string; cd:array[1..34] of string; s:string; elso:boolean; Function FStr(a:integer):string; var x:string; begin Str(a,x); FStr:=x; end; Procedure Kiir; var os,fros:integer; begin Write('Set ',se,'; average length '); os:=0; fros:=0; For i:=1 To ner Do begin Inc(os,Length(cd[i])*frer[i]); Inc(fros,frer[i]); end; WriteLn(os/fros:1:2); For i:=1 To ner Do WriteLn(' ',Chr(i+64),': ',cd[i]); WriteLn; Inc(se); end; Procedure Kodol; begin Repeat If elso Then x:=n Else x:=1; elso:=false; For i:=1 To x Do For j:=n-1 DownTo i Do If (fr[j]0 Then begin For i:=1 To 34 Do begin st[i]:=Chr(i); cd[i]:=''; end; FillChar(fr,SizeOf(fr),0); Read(f,n); For k:=1 To n-1 Do Read(f,fr[k]); ReadLn(f,fr[n]); ner:=n; frer:=fr; If n-r>=0 Then c:=(n-r) mod (r-1) Else c:=n-1; If c>0 Then Inc(n,r-1-c); elso:=true; Kodol; Kiir; end; Until r=0; Close(f); END.