Codeforces Round 686 (Div. 3) |
---|
Закончено |
Вам задан массив $$$a$$$, состоящий из $$$n$$$ целых чисел.
Пусть $$$min(l, r)$$$ равно минимальному значению среди $$$a_l, a_{l + 1}, \ldots, a_r$$$, а $$$max(l, r)$$$ равно максимальному значению среди $$$a_l, a_{l + 1}, \ldots, a_r$$$.
Ваша задача — выбрать три таких положительных (больших $$$0$$$) целых числа $$$x$$$, $$$y$$$ и $$$z$$$, что:
Другими словами, вам необходимо разделить массив $$$a$$$ на три последовательные непустые части, которые покрывают весь массив, и максимум в первой части равен минимуму во второй части, а также равен максимуму в третьей части (или же определить, что такое разбиение невозможно найти).
Среди всех возможных троек (разделений) можно выбрать любое.
Вам необходимо ответить на $$$t$$$ независимых наборов тестовых данных.
Первая строка входных данных содержит одно целое число $$$t$$$ ($$$1 \le t \le 2 \cdot 10^4$$$) — количество наборов тестовых данных. Затем следуют $$$t$$$ наборов тестовых данных.
Первая строка набора тестовых данных содержит одно целое число $$$n$$$ ($$$3 \le n \le 2 \cdot 10^5$$$) — длину $$$a$$$.
Вторая строка набора тестовых данных содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \le a_i \le 10^9$$$), где $$$a_i$$$ равно $$$i$$$-му элементу $$$a$$$.
Гарантируется, что сумма $$$n$$$ не превосходит $$$2 \cdot 10^5$$$ ($$$\sum n \le 2 \cdot 10^5$$$).
Выведите ответ на каждый набор тестовых данных: NO в единственной строке, если не существует такого разбиения $$$a$$$, которе удовлетворяет ограничениям из условия задачи. Иначе выведите YES в первой строке и три целых числа $$$x$$$, $$$y$$$ и $$$z$$$ ($$$x + y + z = n$$$) во второй строке.
Если существует несколько возможных ответов, вы можете вывести любой.
6 11 1 2 3 3 3 4 4 3 4 2 1 8 2 9 1 7 3 9 4 1 9 2 1 4 2 4 3 3 1 2 7 4 2 1 1 4 1 4 5 1 1 1 1 1 7 4 3 4 3 3 3 4
YES 6 1 4 NO YES 2 5 2 YES 4 1 2 YES 1 1 3 YES 2 1 4
Название |
---|