Codeforces Round 779 (Div. 2) |
---|
Закончено |
Красота бинарной строки — это количество в ней $$$\texttt{1}$$$, делённое на длину строки. Например, красота строки $$$\texttt{01101}$$$ равна $$$\frac{3}{5}$$$.
У Дзюдзю есть бинарная строка $$$s$$$ длины $$$n$$$. Она хочет выбрать некоторые непересекающиеся подотрезки $$$s$$$ так, чтобы их конкатенация имела длину $$$m$$$ и такую же красоту, как и строка $$$s$$$.
Более формально, она хочет найти два массива $$$l$$$ и $$$r$$$ равной длины $$$k$$$ таких, что $$$1 \leq l_1 \leq r_1 < l_2 \leq r_2 < \ldots < l_k \leq r_k \leq n$$$, а также:
Первая строка содержит единственное целое число $$$t$$$ ($$$1 \leq t \leq 10^4$$$) — количество наборов входных данных.
Первая строка каждого набора содержит два целых числа $$$n$$$ и $$$m$$$ ($$$1 \leq m \leq n \leq 2 \cdot 10^5$$$).
Вторая строка каждого набора содержит бинарную строку $$$s$$$ длины $$$n$$$.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$.
Для каждого набора входных данных, если не существует подходящих $$$l$$$ и $$$r$$$, выведите $$$-1$$$.
Иначе выведите $$$k + 1$$$ строку.
В первой строке выведите число $$$k$$$ ($$$1 \leq k \leq m$$$) — минимальное количество требуемых подотрезков.
Затем выведите $$$k$$$ строк, $$$i$$$-я строка должна содержать $$$l_i$$$ и $$$r_i$$$ ($$$1 \leq l_i \leq r_i \leq n$$$) — границы $$$i$$$-го подотрезка. Обратите внимание, что вы должны выводить подотрезки так, чтобы выполнялось неравенство $$$l_1 \leq r_1 < l_2 \leq r_2 < \ldots < l_k \leq r_k$$$.
44 200118 6110000114 301015 511111
1 2 3 2 2 3 5 8 -1 1 1 5
В первом примере красота $$$\texttt{0011}$$$ равна красоте $$$\texttt{01}$$$.
Во втором примере красота $$$\texttt{11000011}$$$ равна $$$\frac{1}{2}$$$ и не существует подотрезка длины $$$6$$$ с такой же красотой. Поэтому мы должны использовать $$$2$$$ непересекающихся подотрезка $$$\texttt{10}$$$ и $$$\texttt{0011}$$$.
В третьем примере есть $$$8$$$ способов разбить строку таким образом, что $$$\sum\limits_{i=1}^k (r_i - l_i + 1) = 3$$$, но ни в одном из них конкатенация не будет иметь такую же красоту, как $$$\texttt{0101}$$$.
В последнем примере мы не должны разбивать строку.
Название |
---|