網際網路程式設計全國大賽

決賽題目


題目(1) 找出次大的數字排列
輸入檔PERM.IN
輸出檔PERM.OUT
執行時間限制30 秒

從 0 到 9 選出若干個數字(不能重覆),這些數字可排成一整數。請寫一程式將這樣選出來的數字重新排列,以試著找出一排列方式使其所代表的整數是比原本的整數大的最小整數。

輸入檔說明

輸入檔中會有多組測試資料,每組資料有二列,第一列有一個數字 n (0 < n <= 10),表示第二列有 n 個從 0 到 9 選出的數字,且第二列的數字不會是以 0 開始。讀到 n=0 表示檔案結束。

輸出檔說明

將每一組測試所選的那些數字的重新排列,使其所代表的整數是比原本的整數大的最小整數,若是沒有,則印出 No solution!。每一組答案要依輸入順序印在不同列中,並且中間不可有空白行。

範例

PERM.IN
4
2 9 0 1
6 
8 3 9 5 2 1 
8
7 6 5 4 3 2 1 0
0
PERM.OUT
2 9 1 0
8 5 1 2 3 9
No solution!

Update

輸入檔中,同一行的數字間有一個以上的空白。