‹ 上一题 下一题 ›

g5-08331. 下一个更大数字 未做

1000 ms 256 MB 测试点 10 通过率 100% GESP-55级·STLalgorithm

题目描述

给一个正整数 ()。用 的十进制数字重新排列(每个数字都要用上,出现次数不变),拼一个新的整数,要求:

  1. 不以 开头(正常的十进制写法);
  2. 严格大于 ;
  3. 在满足前两条的数里最小。

不存在这样的数就输出 。

思路:把 的数字串 sort 成最小排列,然后不断 next_permutation,第一个比 大的就是答案——同长度的数字串比大小,字典序和数值大小是一回事;而比 大的排列不可能以 开头(以 开头的同长数字串数值上比 小,会被自动跳过)。

输入格式

一行一个正整数 ()。

输出格式

一行:重排出的比 大的最小整数;无解输出 。

样例

输入:

12354

输出:

12435

12354 的数字重排里,比它大的最小的数是 12435。

数据范围

。数字最多 个、不同排列最多几十万个,从最小排列起逐个 next_permutation 完全来得及;一个数字都换不出更大的(如全同数字、输入已是最大排列)就输出 。

输入
输出

            
答案