Codeforces Round 979 (Div. 2) |
---|
Закончено |
Алиса и Боб играют в игру. Имеется список из $$$n$$$ булевых значений, каждое из которых равняется либо true, либо false, заданный в виде бинарной строки$$$^{\text{∗}}$$$ длины $$$n$$$ (где $$$\texttt{1}$$$ представляет true, а $$$\texttt{0}$$$ представляет false). Изначально между булевыми значениями нет никаких операторов.
Алиса и Боб будут поочерёдно ставить между булевыми значениями операторы and (обозначающие логическое «И») и операторы or (обозначающие логическое «ИЛИ»), причём Алиса будет ходить первой. Таким образом, игра будет состоять из $$$n-1$$$ ходов, поскольку в списке $$$n$$$ булевых значений. Алиса стремится к тому, чтобы итоговое значение было равно true, а Боб — к тому, чтобы оно было равно false. По данному списку булевых значений определите, выиграет ли Алиса, если оба игрока будут играть оптимально.
Чтобы вычислить итоговое значение выражения, выполняйте следующие шаги, пока выражение не будет состоять только из одного true или false:
$$$^{\text{∗}}$$$Бинарная строка — это строка, состоящая только из символов $$$\texttt{0}$$$ и $$$\texttt{1}$$$
Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит одно целое число $$$t$$$ ($$$1 \leq t \leq 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит целое число $$$n$$$ ($$$2 \leq n \leq 2 \cdot 10^5$$$) — длина строки.
Вторая строка содержит бинарную строку длины $$$n$$$, состоящую из символов $$$\texttt{0}$$$ и $$$\texttt{1}$$$ — список булевых значений.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$.
Для каждого набора входных данных выведите «YES« (без кавычек), если Алиса выиграет, и «NO» (без кавычек) в противном случае.
Вы можете выводить каждую букву в любом регистре (строчную или заглавную). Например, строки «yEs», «yes», «Yes» и «YES» будут приняты как положительный ответ.
5211301012101111111100100111111011801000010
YES NO YES YES NO
В первом наборе входных данных Алиса может поместить and между двумя булевыми значениями. Игра закончится, так как других мест для размещения операторов нет, и Алиса выиграет, потому что true and true равняется true.
Во втором наборе входных данных Алиса может поместить or между левым false и средним true. Боб может поместить and между средним true и правым false. Выражение false or true and false равняется false.
Обратите внимание, что эти примеры могут не быть оптимальными стратегиями для Алисы или Боба.
Название |
---|