第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.