第2题: 波波爱积木
波波有一款新式积木,每个积木上都有一个数,一天波波突发奇想,要是把所有的积木排成一排,所形成的数字串最大是多少呢?
不懂编程的波波找到了你,你的任务就是读入n个数字积木,求出所能形成的最大数。
【输入说明】
第i行是一个整数n(n≤1000),接下来n行每行是一个正整数。
【输出说明】
所能形成的最大整数。
【样例输入】
3
13
131
343
【祥例输出】
34313131
【程序清单】
const maxn=1005;
var a:array[0.. maxn] of string[205];
n:longint;
procedure init;
var i:longint;
begin
readln(n);
for i:=1 to n do readln(a[i]);
end;
procedure qsort(L, R:longint);
var i,j:longint;
mid:string;
begin
i:=L;j:=R;mid:=a[(L+R) div 2];
repeat
while (i<R)and( a[i]+mid>mid+a[i] ) do inc(i);
while (j>L)and( a[j]+mid<mid+a[j] ) do dec(j);
if i<=j then begin
a[0] :=a[i] ;a[i] :=a[j] ;a[j] :=a[0];
inc(i);
dec(j) ;
end;
until i>j;
if i<R then qsort(i, R);
if j>L then qsort(L, j);
end;
procedure print;
var i:longint;
begin
for i:=1 to n do write(a[i]);
end;
begin
init;
qsort(1,n);
print;
end.