C. Кролики
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У вас есть $$$n$$$ цветочных горшков, расположенных в ряд и пронумерованных от $$$1$$$ до $$$n$$$ слева направо. Некоторые из горшков содержат цветы, в то время как другие пусты. Вам дана бинарная строка $$$s$$$, описывающая, какие горшки содержат цветы ($$$s_i = 1$$$), а какие пусты ($$$s_i = 0$$$). У вас также есть несколько кроликов, и вы хотите сделать красивую фотографию кроликов и цветов. Вы хотите посадить кроликов в каждый пустой горшок ($$$s_i = 0$$$), и для каждого кролика вы можете посадить его смотрящим либо налево, либо направо. К сожалению, кролики довольно непослушные, и они попытаются прыгнуть, что испортит фотографию.

Каждый кролик будет готовиться к прыжку в следующий горшок в том направлении, в котором он смотрит, но не будет прыгать, если в этом горшке уже есть кролик или если другой кролик готовится прыгнуть в тот же горшок с противоположной стороны. Кролики не будут прыгать за границы (кролик в горшке $$$1$$$, смотрящий налево, не будет прыгать, то же самое для кролика в горшке $$$n$$$, смотрящего направо).

Ваша цель — выбрать направления для кроликов так, чтобы они никогда не прыгнули, что позволит вам не спеша сделать фотографию. Вам нужно определить, существует ли допустимая расстановка кроликов, при которой ни один кролик никогда не прыгнет.

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

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

Первая строка каждого набора входных данных содержит целое число $$$n$$$ ($$$1 \le n \le 2 \cdot 10^5$$$).

Вторая строка содержит бинарную строку $$$s$$$ длины $$$n$$$, обозначающую занятые и свободные горшки.

Гарантируется, что сумма $$$n$$$ по всем тестам не превышает $$$2 \cdot 10^5$$$.

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

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

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

Пример
Входные данные
12
4
0100
3
000
8
11011011
5
00100
1
1
5
01011
2
01
7
0101011
7
1101010
5
11001
4
1101
9
001101100
Выходные данные
YES
YES
NO
YES
YES
YES
YES
YES
YES
YES
NO
NO
Примечание

Ссылка на визуализатор

В первом наборе входных данных одна из допустимых конфигураций — это посадить кролика, смотрящего направо, в позицию $$$1$$$, кролика, смотрящего налево, в позицию $$$3$$$ и кролика, смотрящего налево, в позицию $$$4$$$. Ни один кролик не будет двигаться, поскольку:

  • Кролик в горшке $$$1$$$ не будет прыгать в горшок $$$2$$$, поскольку кролик в горшке $$$3$$$ смотрит налево.
  • Кролик в горшке $$$3$$$ не будет прыгать в горшок $$$2$$$, поскольку кролик в горшке $$$1$$$ смотрит направо.
  • Кролик в горшке $$$4$$$ не будет прыгать в горшок $$$3$$$, поскольку там уже есть кролик.

Во втором наборе входных данных одна из допустимых конфигураций — это посадить кролика, смотрящего налево, в позицию $$$1$$$, кролика, смотрящего направо, в позицию $$$2$$$ и кролика, смотрящего налево, в позицию $$$3$$$. Ни один кролик не будет двигаться, поскольку:

  • Кролик в горшке $$$1$$$ не будет прыгать, поскольку он смотрит на левую границу.
  • Кролик в горшке $$$2$$$ не будет прыгать в горшок $$$3$$$, поскольку там уже есть кролик.
  • Кролик в горшке $$$3$$$ не будет прыгать в горшок $$$2$$$, поскольку там уже есть кролик.

Можно доказать, что в третьем наборе входных данных нет допустимой расстановки кроликов.