欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1836A.Destroyer
Destroyer
题目描述
John 是独立操作系统联盟太空海军一艘驱逐舰的首席程序员。他的任务之一是检查机器人在战斗中是否受到了电子大脑的损伤。
一种标准的测试方法是命令机器人排成一行或多行,每一行的机器人应依次站立。之后,每个机器人会报告在它所在的那一行中,站在它前面的机器人数量。

这是一个机器人的排列示例(队伍前方在左侧)。机器人报告了上方的数字。第 个机器人报告的数字为 。不幸的是,John 并不知道每个机器人站在哪一行,也无法核查这些报告的数字。请你判断是否存在一种排列方式,使得所有机器人的报告都成立。
输入格式
第一行包含一个整数 (),表示测试用例的数量。
每个测试用例的第一行包含一个整数 (),表示机器人的数量。
每个测试用例的第二行包含 个整数 (),其中 表示第 个机器人在其所在队伍中前方的机器人数量。
所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,如果存在一种机器人排列方式使得所有机器人的报告都成立,输出 "YES";否则输出 "NO"。
你可以用任意大小写输出答案。例如,"yEs"、"yes"、"Yes" 和 "YES" 都会被识别为肯定回答。
说明/提示
第一个样例测试用例中,机器人报告一致的排列示例如下:

第二个样例测试用例中,题面中已给出了一种满足机器人报告的排列方式。
在第三个测试用例中,第三个机器人声称它前面有两个机器人。在这种情况下,紧挨着它前面的机器人应该报告前面有一个机器人。但没有机器人报告为 ,因此不存在有效的排列方式。
由 ChatGPT 4.1 翻译
样例
5
6
0 1 2 0 1 0
9
0 0 0 0 1 1 1 2 2
3
0 0 2
1
99
5
0 1 2 3 4
YES
YES
NO
NO
YES
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |