Codeforces Round 575 (Div. 3) |
---|
Закончено |
Вам задан массив $$$a$$$, состоящий из $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$. Вы хотите разделить его ровно на $$$k$$$ непустых непересекающихся подотрезков таким образом, что каждый подотрезок имеет нечетную сумму (то есть для каждого подотрезка должно выполняться, что сумма элементов, принадлежащих этому подотрезку, нечетна). Переставлять элементы заданного массива нельзя. Каждый из $$$n$$$ элементов массива $$$a$$$ должен принадлежать ровно одному из $$$k$$$ подотрезков.
Рассмотрим некоторые примеры разделения массива длины $$$5$$$ на $$$3$$$ подотрезка (необязательно с нечетной суммой): $$$[1, 2, 3, 4, 5]$$$ — это изначальный массив, тогда все возможные способы разделить его на $$$3$$$ непустых непересекающихся подотрезка описаны ниже:
Конечно же, существуют случаи, когда невозможно разделить изначальный массив ровно на $$$k$$$ подотрезков таким образом, что сумма элементов в каждом из них будет нечетна. В этом случае выведите «NO». Иначе выведите «YES» и любое возможное разделение массива. Посмотрите в формат вывода для более детального объяснения.
Вам необходимо ответить на $$$q$$$ независимых запросов.
Первая строка входных данных содержит одно целое число $$$q$$$ ($$$1 \le q \le 2 \cdot 10^5$$$) — количество запросов. Затем следуют $$$q$$$ запросов.
Первая строка запроса содержит два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le k \le n \le 2 \cdot 10^5$$$) — количество элементов в массиве и количество подотрезков соответственно.
Вторая строка каждого запроса содержит $$$n$$$ целых чисел $$$a_1, a_2, \dots, 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$$$).
Для каждого запроса выведите ответ на него. Если невозможно разделить изначальный массив на ровно $$$k$$$ подотрезков таким образом, что сумма элементов в каждом из них будет нечетна, выведите «NO» в первой строке. Иначе выведите «YES» в первой строке и любое возможное разделение массива во второй строке. Разделение может быть представлено в виде $$$k$$$ целых чисел $$$r_1$$$, $$$r_2$$$, ..., $$$r_k$$$ таких, что $$$1 \le r_1 < r_2 < \dots < r_k = n$$$, где $$$r_j$$$ равно правой границе $$$j$$$-го отрезка (индексу последнего элемента, который принадлежит $$$j$$$-му отрезку), таким образом, массив разделен на подотрезки $$$[1; r_1], [r_1 + 1; r_2], [r_2 + 1, r_3], \dots, [r_{k - 1} + 1, n]$$$. Заметьте, что $$$r_k$$$ всегда равно $$$n$$$, но вам все равно необходимо его вывести.
3 5 3 7 18 3 14 1 5 4 1 2 3 4 5 6 2 1 2 8 4 10 2
YES 1 3 5 NO NO
Название |
---|