#B8169. 数位重组

数位重组

题目描述

给定一个正整数 nn,请将 nn 中的每位数字重新排列并组成一个新数,要求新数的值要小于 nn,请找出所有符合要求的新数中最大的那个正整数,如果不存在这样的正整数,则输出 1-1

例1:n=312n=312312312 中每位上的数字依次是 3123、1、2,重新排列组成的新数有 321231213132123321、231、213、132、123,新数中小于 312312 的有 231213132123231、213、132、123,其中符合要求的最大正整数是 231231

例2:n=123n=123123123 中每位上的数字依次是 1231、2、3,重新排列组成的新数有 312321231213132312、321、231、213、132,新数中不存在小于 123123 的正整数,故输出 1-1

「注意」 要求每位数字重新排列并组成的新数不能含有前导 00,求出在此前提下,最大的小于 nn 的正整数。如果不存在,输出 1-1

例如,如果输入 108108,那么比 108108 小的整数有 018018081081,但是他们都含有前导 00,不满足条件,因此输出 1-1

输入格式

输入一个正整数 n(1n<263)n (1≤ n \lt 2​^{63}​)

输出格式

输出一个正整数,表示符合要求的最大正整数。

312
231
108
-1