Bigger is Greater : HackerRank Problem Solution

Given a word w, rearrange the letters of w to construct another word s in such a way that s is lexicographically greater than w. In case of multiple answers, find the lexicographically smallest one.

Input:

5
ab
bb
hefg
dhck
dkhc

Output:

ba
no answer
hegf
dhkc
hcdk

C++ Implementation:

#include <cmath>
#include <cstdio>
#include <cstring>
#include <vector>
#include <iostream>
#include <algorithm>
#define MAX 1000000
using namespace std;


int main() {
    int n;
    char s[MAX];
    cin>>n;
    while(n--)
        {
        cin>>s;
        int len;
        len=strlen(s);
        if(next_permutation(s,s+len))
            cout<<s<<endl;
        else
            cout<<"no answer"<<endl;
    }
    return 0;
}