4071 - 货仓编号

题目描述

A 在一家物流公司负责管理货仓的编号系统。每个货仓都有一个唯一的编号,用一个正整数 N 表示。为了提高货物配送效率,公司决定调整部分货仓的编号。

具体方法是将编号 N 的各位数字重新排列,生成一个新的正整数,要求这个新编号严格小于原来的编号 N,并且在所有满足条件的重排编号中,数值最大

如果无法找到比原编号小的重排数字,则该货仓的编号保持不变,小 A 记录 -1 表示无需调整。

你的任务是帮助小 A计算出符合要求的最大重排编号,或者在无法调整时输出 -1

输入

输入一个正整数 N,表示货仓的原编号。

输出

输出一个正整数,表示所有严格小于 N 的重排编号中最大的那个,如果不存在这样的重排编号,则输出 -1

样例

输入

312

输出

231

输入

789012

输出

782910

输入

13589

输出

-1
说明

样例 1 说明

对于样例 1,货仓编号 312 的所有重排数字中小于 312 的有 231213132123,其中最大的是 231,因此输出 231

数据范围

对于所有测试数据,保证:1 \le N \le 10^{18}

测试点N特殊性质
1\sim 31 \le N \le 10^8
4 \sim 61 \le N \le 10^{18}A
9 \sim 201 \le N \le 10^{18}

特殊性质A:保证 N 的各个位依次递增,如:123

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 3 枚
难度 入门


上一题 下一题