欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1515A.Phoenix and Gold
Phoenix and Gold
题目描述
Phoenix 收集了 块金子,他想把它们一起称重,以感受自己的富有。第 块金子的重量为 。所有金子的重量互不相同。他会将这 块金子一块一块地放到秤上。
这个秤有一个奇怪的缺陷:如果秤上的总重量恰好为 ,秤就会爆炸。他能否以某种顺序将所有 块金子都放到秤上,并且在整个过程中秤不会爆炸?如果可以,请帮他找出一种可能的放置顺序。
形式化地说,请重新排列数组 ,使得对于每个 (),都有 。
输入格式
输入包含多组测试用例。第一行为一个整数 (),表示测试用例的数量。
每个测试用例的第一行包含两个整数 和 (;),分别表示 Phoenix 拥有的金子数量和需要避免的重量。
每个测试用例的第二行包含 个用空格分隔的整数(),表示每块金子的重量。保证所有重量两两不同。
输出格式
对于每个测试用例,如果 Phoenix 无法将所有 块金子放上秤而不让秤爆炸,输出 NO。否则,输出 YES,并在下一行输出重新排列后的数组 。如果有多种方案,输出任意一种即可。
说明/提示
在第一个测试用例中,Phoenix 先把重量为 的金子放到秤上,然后是重量为 的,最后是重量为 的。此时秤上的总重量依次为 、、。秤不会爆炸,因为总重量从未等于 。
在第二个测试用例中,秤上的总重量依次为 、、、、,从未等于 。
在第三个测试用例中,Phoenix 必须把重量为 的金子放到秤上,秤总会爆炸。
由 ChatGPT 4.1 翻译
样例
3
3 2
3 2 1
5 3
1 2 3 4 8
1 5
5
YES
3 2 1
YES
8 1 2 3 4
NO
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |