Олимпиадный тренинг

Задача . A. Разрушитель


Джон — ведущий программист на эсминце, принадлежащем космическому флоту Конфедерации независимых операционных систем. Одна из его задач — проверять, не были ли повреждены электронные мозги роботов во время сражений.

Стандартный тест — приказать роботом сформировать один или несколько рядов, в каждом ряду роботы должна стоять друг за другом. После этого каждый робот доложит, сколько роботов стоит перед ним в его ряду.

Пример расположения роботов (начало рядов слева). Роботы докладывают числа, указанные над ними.

\(i\)-й робот доложил число \(l_i\). К сожалению, Джон не знает, в каком ряду стоит каждый из роботов, и не может проверить доложенные числа. Определите, существует ли расположение роботов такое, что все доложенные числа корректны, или такого расположения не существует.

Входные данные

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число \(t\) (\(1 \leq t \leq 100\)) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит одно число \(n\) (\(1 \le n \le 100\)) — количество роботов.

Вторая строка каждого набора входных данных содержит \(n\) целых \(l_1, l_2, \ldots, l_n\) (\(0 \leq l_i < 100\)), \(l_i\) равно количеству роботов перед \(i\)-м роботом.

Гарантируется, что сумма значений \(n\) по всем наборам входных данных не превосходит \(200\).

Выходные данные

Для каждого набора входных данных выведите «YES», если существует расстановка роботов, соответствующая заявлениям роботов. В противном случае выведите «NO».

Вы можете выводить каждую букву в любом регистре (строчную или заглавную). Например, строки «yEs», «yes», «Yes» и «YES» будут приняты как положительный ответ.

Примечание

Пример расстановки, согласованной с утверждениями роботов из первого примера:

Пример расположения, согласованного с утверждениями роботов из второго примера, показан в условии.

В третьем входном наборе третий робот утверждает, что перед ним находятся две машины. В таком случае перед роботом, стоящим непосредственно перед ним, будет одна машина. Ни один робот не утверждает этого, поэтому нет правильного расположения.


Примеры
Входные данныеВыходные данные
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

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя