CF1836A.Destroyer

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Destroyer

题目描述

John 是独立操作系统联盟太空海军一艘驱逐舰的首席程序员。他的任务之一是检查机器人在战斗中是否受到了电子大脑的损伤。

一种标准的测试方法是命令机器人排成一行或多行,每一行的机器人应依次站立。之后,每个机器人会报告在它所在的那一行中,站在它前面的机器人数量。


这是一个机器人的排列示例(队伍前方在左侧)。机器人报告了上方的数字。第 ii 个机器人报告的数字为 lil_i。不幸的是,John 并不知道每个机器人站在哪一行,也无法核查这些报告的数字。请你判断是否存在一种排列方式,使得所有机器人的报告都成立。

输入格式

第一行包含一个整数 tt1t1001 \leq t \leq 100),表示测试用例的数量。

每个测试用例的第一行包含一个整数 nn1n1001 \le n \le 100),表示机器人的数量。

每个测试用例的第二行包含 nn 个整数 l1,l2,,lnl_1, l_2, \ldots, l_n0li<1000 \leq l_i < 100),其中 lil_i 表示第 ii 个机器人在其所在队伍中前方的机器人数量。

所有测试用例中 nn 的总和不超过 200200

输出格式

对于每个测试用例,如果存在一种机器人排列方式使得所有机器人的报告都成立,输出 "YES";否则输出 "NO"。

你可以用任意大小写输出答案。例如,"yEs"、"yes"、"Yes" 和 "YES" 都会被识别为肯定回答。

说明/提示

第一个样例测试用例中,机器人报告一致的排列示例如下:

第二个样例测试用例中,题面中已给出了一种满足机器人报告的排列方式。

在第三个测试用例中,第三个机器人声称它前面有两个机器人。在这种情况下,紧挨着它前面的机器人应该报告前面有一个机器人。但没有机器人报告为 11,因此不存在有效的排列方式。

由 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

建议全屏模式获得最佳体验