POJ 1146 - ID Codes

http://poj.org/problem?id=1146

概要

小文字のアルファベットからなる文字列が与えられる. その文字の集合から生成できるすべての文字列を辞書順に並べたとき,与えられ文字列の次の文字列を答える. ただし,与えられた文字列が最後の文字列だったときは「No Successor」と出力する.

制約

解法

next_permutation するだけ.

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7   string s;
 8   while (cin >> s && s != "#") {
 9     if (next_permutation(s.begin(), s.end())) {
10       cout << s << endl;
11     } else {
12       cout << "No Successor" << endl;
13     }
14   }
15   return 0;
16 }
poj/1146.cc