PAT甲级--A1038は、最小の番号を復元します

数セグメントの集合を考えると、あなたは彼らから最小の数を回復することになっています。例えば、{32、321、3214、0229、87}が与えられると、我々はそのような組み合わせの異なる順序に対して32-321-3214-0229-87又は0229-32-87-321-3214ような多くの数を回復することができこれらのセグメント、および最小数は0229-321-3214-32-87あります。

入力仕様:

各入力ファイルには、1つのテストケースが含まれています。各ケースは、正の整数与える  N(≤)、続いて  N個のセグメント。各セグメントは、せいぜい8桁の負でない整数を含んでいます。行のすべての数字は、スペースで区切られます。

出力仕様:

各テストケースのために、1つのラインの最小数を印刷します。最初の桁がゼロであってはならないことに注意してください。

サンプル入力:

5 32 321 3214 0229 87

サンプル出力:

22932132143287


1の#include <iostreamの>
 2の#include < ストリング >
 3の#include <ベクトル>
 4の#include <アルゴリズム>
 5  使って 名前空間STDを、
6  // 排序问题
7  int型N。
8ベクトル< ストリング > V、TEMP。
9   RES = ""、STR = "" ;
10  ボイド permuteDFS(int型、ベクトル<UをBOOL >&訪問)// 使用DFS 
11  {
 12      であれば(U ==v.size())
 13      {
 14          のための(自動:TEMP)
 15              STR + = A。
16の          RES = resを> STR?STR:RES。
17          STR = "" ;
18          リターン;
19      }
 20      のためのint型 iは= 0 ; iがNを<; ++ I)
 21      {
 22          であれば([I] ==訪れ続けます23          訪問[I] = ;
24          temp.push_back(V [I])。
25          permuteDFS(私は+ 1を訪問、);
26          temp.pop_back()。
27          訪問[I] = ;
28      }
 29  }
 30  
31  空隙 permutex(INT U)// 使用递归
32  {
 33      であれば(U == v.size())
 34      {
 35          のための(自動:V)
 36              STR + = A。
37の          RES = resを> STR?STR:RES。
38          STR = "" ;
39     }
 40      のためのINT I = U、iがNを<; ++ I)
 41      {
 42          スワップ(V [i]は、V [U])。
43          permutex(I + 1 )。
44          スワップ(V [i]は、V [U])。
45      }
 46  }
 47  
48  空隙ソート()// 使用排序法则
49  {
 50      ソート(v.begin()、v.end()、[](文字列文字列 B){ 返す + B <Bを+ ;});
51      のRES = "" ;
52      のための(自動A:V)
 53の          RES + = A。
54  }
 55  
56  INT ()主
 57  {
 58      CIN >> N。
59      v.resize(N)。
60      ベクトル< ブール >訪問(N、);
61      のためにint型 I = 0 ; iがNを<; ++ I)
 62      {
 63          CIN >> V [i]は、
64の          RES + = V [i]は、
65      }
 66      // permutex(0)。
67      //permuteDFS(0、訪問)。
68      ソート()。
69      ながら(!res.empty()&& RES [ 0 ] == ' 0 ' 70          res.erase(01 )。
71      であれば(res.size()== 0)COUT << 0 72      COUT << RES << ENDL。
73      リターン 0 74 }

 

おすすめ

転載: www.cnblogs.com/zzw1024/p/11257045.html