上海计算机学会2024年11月月赛C++乙组T2最小差异

最小差异

内存限制: 512 Mb时间限制: 1000 ms

题目描述

Bob 有 n 个数对,第 i 个是 (ai​,bi​),同时有两个桶,初始都为空。

Bob 会对于i=1,2,⋯,n,依次选择 ai​,bi​ 中的恰好一个,并任意加入到他的任意一个桶中。

最终,Bob 的两个桶里必须都非空,他想要最小化两个桶中最大元素的差值,请求出这个值。

输入格式

第一行一个整数 n。

接下来 n 行,每行两个整数 ai​,bi​ 表示一个数对。

输出格式

一行一个整数表示答案。

数据范围

对于 30% 的数据,n≤18。

对于 60% 的数据,n≤1000。

对于 100% 的数据,22≤n≤2×10^5,1≤ai​,bi​≤10^9。

样例数据

输入:
2
1 6
4 9
输出:
2
说明:
在 (1,6) 中选择 6 放入桶 1
在 (4,9) 中选择 4 放入桶 2
两个桶最大元素的差值为 6-4=2。
输入:
2
1 9
4 6
输出:
3
说明:
在 (1,9) 中选择 9 放入桶 1
在 (4,6) 中选择 6 放入桶 2
两个桶最大元素的差值为 9-6=3。

解析:可以将所有数字按从小到大的顺序排列, 从头开始统计有多少个数对,若已有数对个数达到n,证明可以取后边只要不是一个数对中的两个数,这两个数就是最大值和次大值,求这些差值中的最小值即为答案,详见代码:


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长春高老师信奥工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值