CF1889A.Qingshan Loves Strings 2
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Qingshan has a string s which only contains 0 and 1 .
A string a of length k is good if and only if
- ai=ak−i+1 for all i=1,2,…,k .
For Div. 2 contestants, note that this condition is different from the condition in problem B.
For example, 10 , 1010 , 111000 are good, while 11 , 101 , 001 , 001100 are not good.
Qingshan wants to make s good. To do this, she can do the following operation at most 300 times (possibly, zero):
- insert 01 to any position of s (getting a new s ).
Please tell Qingshan if it is possible to make s good. If it is possible, print a sequence of operations that makes s good.
输入格式
The input consists of multiple test cases. The first line contains a single integer t ( 1≤t≤100 ) — the number of test cases. The description of the test cases follows.
The first line of each test case contains a single integer n ( 1≤n≤100 ) — the length of string s , respectively.
The second line of each test case contains a string s with length n .
It is guaranteed that s only consists of 0 and 1 .
输出格式
For each test case, if it impossible to make s good, output −1 .
Otherwise, output p ( 0≤p≤300 ) — the number of operations, in the first line.
Then, output p integers in the second line. The i -th integer should be an index xi ( 0≤xi≤n+2i−2 ) — the position where you want to insert 01 in the current s . If xi=0 , you insert 01 at the beginning of s . Otherwise, you insert 01 immediately after the xi -th character of s .
We can show that under the constraints in this problem, if an answer exists, there is always an answer that requires at most 300 operations.
输入输出样例
输入#1
6 2 01 3 000 4 1111 6 001110 10 0111001100 3 001
输出#1
0 -1 -1 2 6 7 1 10 -1
说明/提示
In the first test case, you can do zero operations and get s=01 , which is good.
Another valid solution is to do one operation: (the inserted 01 is underlined)
- 0011
and get s=0011 , which is good.
In the second and the third test case, it is impossible to make s good.
In the fourth test case, you can do two operations:
- 00111001
- 0011100011
and get s=0011100011 , which is good.