下一个排列
描述
给定一个正整数x,请找到一个最小的数字y,使得数字0到9在y中的出现次数与在x中的出现次数分别对应相等,且x<y。
输入
输入只有一行一个整数,表示x。 1≤x<10^6
输出
输出一行一个整数表示答案。 若这样的y不存在请输出0。
input
156
output
165
input
330
output
0
此题用next_permutation()函数即可
完整代码如下
#include <bits/stdc++.h>
using namespace std;
char s[1000010];
int main(){
gets(s);
int l=strlen(s);
if(next_permutation(s,s+l))cout<<s;
else cout<<0;
return 0;
}