Codeforces Round 827 (Div. 4) |
---|
Закончено |
У Альперена есть две строки, $$$s$$$ и $$$t$$$, которые обе изначально равны «a».
Он выполнит $$$q$$$ операций двух видов над данными строками:
После каждой операции определите, можно ли переставить символы $$$s$$$ и $$$t$$$ так, чтобы $$$s$$$ была лексикографически меньше $$$^{\dagger}$$$, чем $$$t$$$.
Обратите внимание, что строки изменяются после выполнения каждой операции и не возвращаются в исходное состояние.
$$$^{\dagger}$$$ Проще говоря, лексикографический порядок - это порядок, в котором слова перечислены в словаре. Формальное определение таково: строка $$$p$$$ лексикографически меньше строки $$$q$$$, если существует позиция $$$i$$$ такая, что $$$p_i < q_i$$$, и для всех $$$j < i$$$, $$$p_j = q_j$$$. Если такой позиции $$$i$$$ не существует, то $$$p$$$ лексикографически меньше $$$q$$$, если длина $$$p$$$ меньше длины $$$q$$$. Например, $$$\texttt{abdc} < \texttt{abe}$$$ и $$$\texttt{abc} < \texttt{abcd}$$$, где мы пишем $$$p < q$$$, если $$$p$$$ лексикографически меньше $$$q$$$.
Первая строка входных данных содержит целое число $$$t$$$ ($$$1 \leq t \leq 10^4$$$) — количество наборов входных данных.
Первая строка каждого набора содержит целое число $$$q$$$ $$$(1 \leq q \leq 10^5)$$$ — количество операций, которые будет выполнять Alperen.
Затем следуют $$$q$$$ строк, каждая из которых содержит два положительных целых числа $$$d$$$ и $$$k$$$ ($$$1 \leq d \leq 2$$$; $$$1 \leq k \leq 10^5$$$) и непустую строку $$$x$$$, состоящую из строчных английских букв — тип операции, количество раз, которое мы будем добавлять к строке $$$x$$$ и строку, которую нужно добавить соответственно.
Гарантируется, что сумма $$$q$$$ по всем наборам не превышает $$$10^5$$$ и что сумма длин всех строк $$$x$$$ из входных данных не превышает $$$5 \cdot 10^5$$$.
Для каждой операции выведите «YES», если возможно расположить элементы в обеих строках таким образом, что $$$s$$$ будет лексикографически меньше $$$t$$$ и «NO» в противном случае.
352 1 aa1 2 a2 3 a1 2 b2 3 abca21 5 mihai2 2 buiucani31 5 b2 3 a2 4 paiu
YES NO YES NO YES NO YES NO NO YES
В первом примере строки изначально являются $$$s = $$$ «a» и $$$t = $$$ «a».
После первой операции строка $$$t$$$ становится «aaa». Поскольку «a» уже лексикографически меньше, чем «aaa», ответом на эту операцию должно быть «YES».
После второй операции строка $$$s$$$ становится «aaa», а поскольку $$$t$$$ также равна «aaa», мы не можем переставить символы $$$s$$$ так, чтобы она была лексикографически меньше $$$t$$$, поэтому ответ «NO».
После третьей операции строка $$$t$$$ становится «aaaaaa», а $$$s$$$ уже лексикографически меньше нее, поэтому ответом будет «YES».
После четвертой операции $$$s$$$ становится «aaabb» и нет способа сделать ее лексикографически меньше, чем «aaaaaa», поэтому ответ «NO».
После пятой операции строка $$$t$$$ становится «aaaaaaabcaabcaabca», и мы можем переставить символы в строках так: «bbaaa» и «caaaaaabcaabcaabaa», так что $$$s$$$ будет лексикографически меньше $$$t$$$, поэтому мы должны ответить «YES».
Название |
---|