http://acm.pku.edu.cn/JudgeOnline/problem?id=1146

Код:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
        string s;
        int i;
        for(;;) {
                cin >> s;
                if(s=="#") break;
 
                for(i=s.size()-1;i>0;--i)
                        if(s[i] > s[i-1]) break;
                if(i==0) cout << "No Successor" << endl;
                else {
                        next_permutation(s.begin(), s.end());
                        cout << s << endl;
                }
        }
        return 0;
}