Codeforces Round 866 (Div. 1) |
---|
Закончено |
Как известно, любая задача, в которой не требуется использовать сложные структуры данных, считается конструктивной. Вам предлагается решить одну из таких задач.
Дан массив $$$a$$$ из $$$n$$$ целых неотрицательных чисел. Вам разрешается ровно один раз выполнить следующую операцию: выбрать какой-то непустой подотрезок $$$a_l, a_{l+1}, \ldots, a_r$$$ массива $$$a$$$ и целое неотрицательное число $$$k$$$, и присвоить значение $$$k$$$ всем элементам массива на выбранном подотрезке.
Требуется выяснить, можно ли увеличить $$$\operatorname{MEX}(a)$$$ ровно на единицу, проделав такую операцию. Другими словами, если до выполнения операции выполнялось $$$\operatorname{MEX}(a) = m$$$, то после операции должно быть верно, что $$$\operatorname{MEX}(a) = m + 1$$$.
Напомним, что $$$\operatorname{MEX}$$$ набора чисел $$$c_1, c_2, \ldots, c_k$$$ определяется как наименьшее неотрицательное целое число $$$x$$$, которое не встречается в наборе чисел $$$c$$$.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 50\,000$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора данных содержит единственное целое число $$$n$$$ ($$$1 \le n \le 200\,000$$$) — размер массива $$$a$$$.
Вторая строка каждого набора данных содержит $$$n$$$ целых неотрицательных чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$0 \le a_i \le 10^9$$$) — элементы массива $$$a$$$.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$200\,000$$$.
Для каждого набора входных данных выведите «Yes», если можно увеличить $$$\operatorname{MEX}(a)$$$ ровно на единицу, выполнив операцию из условия ровно один раз, иначе выведите «No».
Вы можете выводить каждую букву в любом регистре (строчную или заглавную). Например, строки «yEs», «yes», «Yes» и «YES» будут приняты как положительный ответ.
431 2 140 2 2 043 2 0 210
Yes Yes No No
В первом наборе входных данных $$$\operatorname{MEX}(a) = 0$$$. Если присвоить всем элементам $$$a$$$ значение $$$0$$$, то $$$\operatorname{MEX}$$$ полученного массива будет равен $$$1$$$, и тем самым увеличится на единицу.
Во втором наборе входных данных $$$\operatorname{MEX}(a) = 1$$$. Если присвоить значение $$$1$$$ элементам $$$a$$$ на отрезке от $$$2$$$ до $$$3$$$, то получится массив $$$[0, 1, 1, 0]$$$, для которого $$$\operatorname{MEX}$$$ равен $$$2$$$, и тем самым увеличился на единицу по сравнению с изначальным.
Можно показать, что в третьем и четвертом наборах входных данных невозможно выполнить операцию, чтобы значение $$$\operatorname{MEX}(a)$$$ увеличилось ровно на единицу.
Название |
---|