Toggle navigation
HUSTOJ
常见问答
讨论版
问题
来源/分类
状态
排名
竞赛&作业
[
问题
状态
排名
OI 排名
统计
]
Login
问题 B: 2024 北京中小学信息学能力测评活动-小高组-样例-T2-数字游戏
问题 B: 2024 北京中小学信息学能力测评活动-小高组-样例-T2-数字游戏
时间限制:
1
Sec
内存限制:
128 MB
提交:
22
解决:
7
[
提交
] [
状态
] [
讨论版
] [命题人:
]
题目描述
小明和小红在做一个数字游戏。小明写出一个二进制数,小红必须交换其中的两个数字
来得出一个新的二进制数(必须进行交换操作且只能交换两个数字)。
小明想知道所有得到
的新二进制数中第二大的数是几。小红知道怎么计算最大的数,但是她不知道怎么计算第二
大的数,你能帮帮她么?
输入
共一行。为小明给出的一个二进制数,不包含前导零。保证所有输入的二进制数通过交
换一定能产生至少两个比原数更大的数字。
对于 30%的数据,保证输入的二进制数长度<=10。
对于 60%的数据,保证输入的二进制数长度<=1000。
对于 100%的数据,保证输入的二进制数长度<=1000000。
输出
共一行。为小红执行交换操作后第二大的二进制数
样例输入
Copy
1110011
样例输出
Copy
1111001
提示
样例解释:
交换后最大的二进制数为 1111010,交换的是第四位的 0 和第 7 位的 1。第二大的二进制数为 1111001,交换的是第四位的 0 和第 6 位的 1。
输入解释:
如数字:11110000,不论如何交换,交换后一定会变小,这种输入情况
不会存在
;再比如数字:101000,交换后只会产生一个比他大的数字 110000,无法通过交换得到第二个比原数字更大的数,这种输入情况也
不会存在
。