CF1271B.Blocks

普及-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

There are nn blocks arranged in a row and numbered from left to right, starting from one. Each block is either black or white.

You may perform the following operation zero or more times: choose two adjacent blocks and invert their colors (white block becomes black, and vice versa).

You want to find a sequence of operations, such that they make all the blocks having the same color. You don't have to minimize the number of operations, but it should not exceed 3⋅n3 \cdot n. If it is impossible to find such a sequence of operations, you need to report it.

有 nn 个方块从左到右排成一行,并从左至右依次编号为 11 到 nn。每个方块为黑色或白色。

你可以执行以下操作零次或多次:选择两个相邻的方块,并将它们的颜色翻转(白色变为黑色,黑色变为白色)。

你需要找到一个操作序列,使得所有方块最终颜色相同。你无需最小化操作次数,但操作总数不得超过 3⋅n3 \cdot n。若不存在满足条件的操作序列,则需报告该情况。

输入格式

The first line contains one integer nn (2≤n≤2002 \le n \le 200) — the number of blocks.

The second line contains one string ss consisting of nn characters, each character is either "W" or "B". If the ii-th character is "W", then the ii-th block is white. If the ii-th character is "B", then the ii-th block is black.

第一行包含一个整数 nn(2≤n≤2002 \le n \le 200)—— 表示方块的数量。

第二行包含一个由 nn 个字符组成的字符串 ss,每个字符为 "W" 或 "B"。如果第 ii 个字符是 "W",则第 ii 个方块为白色;如果第 ii 个字符是 "B",则第 ii 个方块为黑色。

输出格式

If it is impossible to make all the blocks having the same color, print −1-1.

Otherwise, print an integer kk (0≤k≤3⋅n0 \le k \le 3 \cdot n) — the number of operations. Then print kk integers p1,p2,…,pkp_1, p_2, \dots, p_k (1≤pj≤n−1)(1 \le p_j \le n - 1), where pjp_j is the position of the left block in the pair of blocks that should be affected by the jj-th operation.

If there are multiple answers, print any of them.

如果无法使所有方块颜色相同,则输出 −1-1。

否则,输出一个整数 kk(0≤k≤3⋅n0 \le k \le 3 \cdot n)—— 表示操作次数。然后输出 kk 个整数 p1,p2,…,pkp_1, p_2, \dots, p_k(1≤pj≤n−11 \le p_j \le n - 1),其中 pjp_j 表示第 jj 次操作所作用的两个方块中左侧方块的位置。

若存在多个答案,输出任意一个即可。

输入输出样例

  • 输入#1

    8
    BWWWWWWB

    输出#1

    3
    6 2 4
  • 输入#2

    4
    BWBB

    输出#2

    -1
  • 输入#3

    5
    WWWWW

    输出#3

    0
  • 输入#4

    3
    BWB

    输出#4

    2
    2 1

说明/提示

In the first example, it is possible to make all blocks black in 33 operations. Start with changing blocks 66 and 77, so the sequence is "BWWWWBBB". Then change blocks 22 and 33, so the sequence is "BBBWWBB". And finally, change blocks 44 and 55, so all blocks are black.

It is impossible to make all colors equal in the second example.

All blocks are already white in the third example.

In the fourth example it is possible to make all blocks white in two operations: first operation is to change blocks 22 and 33 (so the sequence is "BBW"), and then change blocks 11 and 22 (so all blocks are white).

在第一个例子中,可以通过 33 次操作使所有方块变为黑色。首先翻转方块 66 和 77,序列变为 “BWWWWBBB”;接着翻转方块 22 和 33,序列变为 “BBBWWBB”;最后翻转方块 44 和 55,所有方块均变为黑色。

在第二个例子中,无法使所有方块颜色相同。

在第三个例子中,所有方块初始即为白色。

在第四个例子中,可以通过两次操作使所有方块变为白色:第一次操作翻转方块 22 和 33(序列变为 “BBW”),第二次操作翻转方块 11 和 22(所有方块均变为白色)。

输入解题思路,AI测评打分。不知道怎么写?

首页