Codeforces Round 754 (Div. 2)
B
Reverse Sort
Codeforces
1000
原题
← AC →
翻译中…

Ashish has a binary string $s$ of length $n$ that he wants to sort in non-decreasing order.

翻译中…

He can perform the following operation:

翻译中…
  1. Choose a subsequence of any length such that its elements are in non-increasing order. Formally, choose any $k$ such that $1 \leq k \leq n$ and any sequence of $k$ indices $1 \le i_1 \lt i_2 \lt \ldots \lt i_k \le n$ such that $s_{i_1} \ge s_{i_2} \ge \ldots \ge s_{i_k}$.
  2. Reverse this subsequence in-place. Formally, swap $s_{i_1}$ with $s_{i_k}$, swap $s_{i_2}$ with $s_{i_{k-1}}$, $\ldots$ and swap $s_{i_{\lfloor k/2 \rfloor}}$ with $s_{i_{\lceil k/2 \rceil + 1}}$ (Here $\lfloor x \rfloor$ denotes the largest integer not exceeding $x$, and $\lceil x \rceil$ denotes the smallest integer not less than $x$)
翻译中…

Find the minimum number of operations required to sort the string in non-decreasing order. It can be proven that it is always possible to sort the given binary string in at most $n$ operations.

翻译中…

Input

翻译中…

The first line contains a single integer $t$ $(1 \le t \le 1000)$  — the number of test cases. The description of the test cases follows.

翻译中…

The first line of each test case contains an integer $n$ $(1 \le n \le 1000)$  — the length of the binary string $s$.

翻译中…

The second line of each test case contains a binary string $s$ of length $n$ containing only $0$s and $1$s.

翻译中…

It is guaranteed that the sum of $n$ over all test cases does not exceed $1000$.

翻译中…

Output

翻译中…

For each test case output the following:

翻译中…
  • The minimum number of operations $m$ in the first line ($0 \le m \le n$).
  • Each of the following $m$ lines should be of the form: $k$ $i_1$ $i_2$ ... $i_{k}$, where $k$ is the length and $i_1 \lt i_2 \lt ... \lt i_{k}$ are the indices of the chosen subsequence. For them the conditions from the statement must hold.
翻译中…

Note

翻译中…

In the first test case, the binary string is already sorted in non-decreasing order.

翻译中…

In the second test case, we can perform the following operation:

翻译中…
  • $k = 4:$ choose the indices $\{1, 3, 4, 5\}$$\underline{1}$ $0$ $\underline{1}$ $\underline{0}$ $\underline{0}$ $\rightarrow $ $\underline{0}$ $0$ $\underline{0}$ $\underline{1}$ $\underline{1}$
翻译中…

In the third test case, we can perform the following operation:

翻译中…
  • $k = 3:$ choose the indices $\{3, 5, 6\}$$0$ $0$ $\underline{1}$ $0$ $\underline{0}$ $\underline{0}$ $\rightarrow $ $0$ $0$ $\underline{0}$ $0$ $\underline{0}$ $\underline{1}$
翻译中…

样例

Input #1
3
7
0011111
5
10100
6
001000
Output #1
0
1
4 1 3 4 5
1
3 3 5 6
InputCopy OutputCopy
题目信息
题号
1605B
时间限制
2 s
内存限制
256 MB
标签
贪心
排序

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。