Codeforces Global Round 25 |
---|
Закончено |
Вам дана перестановка $$$p$$$ длины $$$n$$$, а также целое неотрицательное число $$$k$$$. Вам нужно построить перестановку $$$q$$$ длины $$$n$$$ такую, что $$$\operatorname{inv}(q) + \operatorname{inv}(q \cdot p) = k {}^\dagger {}^\ddagger$$$, или определить, что это сделать невозможно.
$$${}^\dagger$$$ Для двух перестановок $$$p$$$ и $$$q$$$ одинаковой длины $$$n$$$ перестановка $$$w = q \cdot p$$$ такова, что $$$w_i = q_{p_i}$$$ для всех $$$1 \le i \le n$$$.
$$${}^\ddagger$$$ Для перестановки $$$p$$$ длины $$$n$$$ функция $$$\operatorname{inv}(p)$$$ возвращает количество инверсий $$$p$$$, то есть количество пар индексов $$$1 \le i < j \le n$$$ таких, что $$$p_i > p_j$$$.
Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le n \le 3 \cdot 10^5, 0 \le k \le n(n - 1)$$$) — длину $$$p$$$ и требуемое количество инверсий.
Вторая строка каждого набора входных данных содержит $$$n$$$ целых чисел $$$p_1, p_2, \ldots, p_n$$$ ($$$1 \le p_i \le n$$$, $$$p_i$$$ попарно различны) — перестановку $$$p$$$.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$3 \cdot 10^5$$$.
Для каждого набора входных данных выведите в отдельной строке «YES», если существует перестановка $$$q$$$, удовлетворяющая заданному условию, или «NO», если такой перестановки не существует.
Если ответ «YES», то во второй строке выведите $$$n$$$ целых чисел $$$q_1, q_2, \ldots, q_n$$$, которые представляют собой удовлетворяющую условию перестановку $$$q$$$. Если таких $$$q$$$ несколько, выведите любую из них.
53 42 3 15 52 3 5 1 46 115 1 2 3 4 69 513 1 4 2 5 6 7 8 91 01
YES 3 2 1 NO NO YES 1 5 9 8 7 6 4 3 2 YES 1
В первом наборе входных данных имеем $$$q \cdot p = [2, 1, 3]$$$, $$$\operatorname{inv}(q) = 3$$$, и $$$\operatorname{inv}(q \cdot p) = 1$$$.
В четвертом наборе входных данных имеем $$$q \cdot p = [9, 1, 8, 5, 7, 6, 4, 3, 2]$$$, $$$\operatorname{inv}(q) = 24$$$, и $$$\operatorname{inv}(q \cdot p) = 27$$$.
Название |
---|