View Code of Problem 272

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
       
int main()
{
    while (1)
    {
        string stemp;
        int flag=0;
        vector<char> in;
        cin>>stemp;
        if(stemp[0]=='#')
            break;
        for (int i=0;i<stemp.size()-1;++i)
        {
            if(stemp[i]<stemp[i+1])
                flag=1;
        }
        if((stemp.size()==1)||(!flag))
        {
            cout<<"No Successor"<<endl;
            continue;
        }
        in.resize(stemp.size());
        for (int i=0;i<stemp.size();++i)
        {
            in[i]=stemp[i];
        }
        next_permutation(in.begin(),in.end());
        for (int i=0;i<stemp.size();++i)
        {
            cout<<in[i];
        }
        cout<<endl;
    }
    return 0;

}

Double click to view unformatted code.


Back to problem 272