欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1623B.Game on Ranges
Game on Ranges
题目描述
Alice 和 Bob 玩如下游戏。Alice 有一个整数区间集合 ,最开始只包含一个区间 。每一回合,Alice 从集合 中选出一个区间 ,让 Bob 从该区间中选一个数。Bob 选择一个数 ()。然后 Alice 将 从 中移除,并将 (如果 )和 (如果 )加入 。当 为空时,游戏结束。可以证明,每次游戏的回合数恰好为 。
游戏结束后,Alice 记得她每次从 中选出的所有区间 ,但 Bob 不记得他选的任何数字。不过 Bob 很聪明,他知道可以通过 Alice 选出的区间推断出他选的数字 ,于是他请求你用编程帮他找出每个区间对应的 。
给定 Alice 选出的所有区间 的列表,对于每个区间,帮助 Bob 找出他当时选的数字 。
可以证明,对于每组有效的区间列表,Bob 选择数字的方式是唯一的。
输入格式
每个测试点包含多组测试数据。第一行包含一个整数 (),表示测试数据组数。
每组测试数据的第一行包含一个整数 ()。
接下来的 行,每行包含两个整数 和 (),表示 Alice 某次选出的区间 。
注意,这些区间的顺序是无序的。
保证所有测试数据中 的总和不超过 ,且每组区间均来自一次有效的游戏过程。
输出格式
对于每组测试数据,输出 行。每行输出三个整数 、 和 ,表示对于 Alice 的区间 ,Bob 选择的数字 。
输出的行顺序可以任意。可以证明答案是唯一的。
每组测试数据之间不需要额外换行。样例输出中的换行仅为可读性。
说明/提示
在第一个测试点中,只有一个区间 。Alice 只能选 ,Bob 也只能选 。
在第二个测试点中,。最开始集合只包含区间 。
- Alice 选 ,Bob 选 。Alice 将 放回集合,此时集合只剩 。
- Alice 选 ,Bob 选 。Alice 将 放回集合。
- Alice 选 ,Bob 选 。游戏结束。
在第四个测试点中,。最开始集合只包含区间 。游戏过程如下表所示。
| 回合 | Alice 选的区间 | Bob 选的数字 | 回合后集合 |
|---|---|---|---|
| 游戏开始前 | — | ||
| 1 | |||
| 2 | |||
| 3 | |||
| 4 | |||
| 5 | (空集) | ||
由 ChatGPT 4.1 翻译
样例
4
1
1 1
3
1 3
2 3
2 2
6
1 1
3 5
4 4
3 6
4 5
1 6
5
1 5
1 2
4 5
2 2
4 4
1 1 1
1 3 1
2 2 2
2 3 3
1 1 1
3 5 3
4 4 4
3 6 6
4 5 5
1 6 2
1 5 3
1 2 1
4 5 5
2 2 2
4 4 4
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |