Doubt in CODIGO contest problem named Superstitious

This is the link to the problem CodeChef: Practical coding for everyone

I tried to solve it using inbuilt function next_permutation.
I can’t actually figure out why it is giving WA with my code.

My code is:
#include <bits/stdc++.h>
using namespace std;

bool admitted(string str)
int len = str.size();
for(int i=1; i<len; i++)
if(str[i] == str[i-1])
return false;
return true;
void nPermute(string str, long int n)
string prev;
sort(str.begin(), str.end());

int i = 1;
    //cout<<str<<" "<<i<<endl;
    if (i == n+1)
    if(admitted(str) == true)
        prev = str;
} while (next_permutation(str.begin(), str.end()));

if(i == n+1)
    cout << prev << endl;
    cout << "-1" << endl;


// Driver code
int main()
string str;
int roll;

nPermute(str, roll);
return 0;


You should have firstly sorted the string str in your main function after that you should have used the next_permutation() function.