var s,p1,p2:string;a:array['A'..'Z'] of byte;n,i,j,f:integer; c,sim:char;beginreadln(n);readln(s);for c:='A' to 'Z' do a[c]:=0;for i:=1 to length(s) do a[s[i]]:=a[s[i]]+1;p1:=''; p2:=''; f:=0;for c:='A' to 'Z' do begin for j:=1 to a[c] div 2 do begin p1:=p1+c; p2:=c+p2; end; if (a[c] mod 2=1)and(f=0) then begin sim:=c; f:=1; end; end;if f=1 then p1:=p1+sim;p1:=p1+p2;writeln(p1);end.Пример:6QAZQAZAQZZQAPS. Программа проверялась только для коротких (String) строк. Для длинных нужно использовать AnsiString.