```delphi
var
a:array[1..20] of string;
n,i,x,j:longint;
tmp:string;
function swap(i,j:longint):longint;
var
tmp:string;
begin
tmp:=a[i];
a[i]:=a[j];
a[j]:=tmp;
end;
begin
readln(n);
for i:=1 to n do
begin
read(x);
str(x,a[i]);
end;
for i:=1 to n-1 do
for j:=i+1 to n do
if (a[i]<a[j]) then
swap(i,j);
for i:=1 to n-1 do
for j:=1 to n-1 do
if (pos(a[j+1],a[j])<>0)and(a[j,length(a[j+1])+1]<a[j,1]) then
swap(j,j+1);
for i:=1 to n do write(a[i]);
writeln;
end.
```
by Altria_Pendragon_ @ 2018-01-15 17:50:33
可能是比如313 31这两个数
你的程序可能输出31313,而正确答案是31331.
by Altria_Pendragon_ @ 2018-01-15 17:54:01
@[Mr\_\_\_\_](/space/show?uid=58394) 你是不是发错讨论了?》》》
by Altria_Pendragon_ @ 2018-01-15 17:54:47