CF2092D.Mishkin Energizer

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

为了准备与老朋友 Fernan 的决斗,Edmond 正在制作一种名为 "Mishkin Energizer" 的能量饮料。该饮料由一个长度为 nn 的字符串 ss 构成,仅包含字符 L、I 和 T,分别对应饮料中三种不同物质的含量。

当饮料中所有三种物质的数量相等时,我们称其为平衡的。为了增强气场并确保决斗胜利,Edmond 必须通过以下操作使初始字符串变为平衡状态:

  1. 选择一个下标 ii 满足 si≠si+1s_i \neq s_{i+1}(此时 i+1i + 1 必须不超过字符串当前长度)。
  2. 在它们之间插入一个字符 xx(可以是 L、I 或 T),且满足 x≠six \neq s_i 和 x≠si+1x \neq s_{i+1}。

帮助 Edmond 通过不超过 2n\textbf{2n} 次操作使饮料平衡并赢得决斗。若存在多种解,可输出任意一种。若不可能实现,需报告此情况。

输入格式

每个测试包含多个测试用例。输入数据第一行包含一个整数 tt (1≤t≤1001 \le t \le 100) —— 测试用例数量。接下来是测试用例描述。

每个测试用例的第一行包含一个整数 nn (1≤n≤1001 \le n \le 100) —— 字符串 ss 的长度。

每个测试用例的第二行包含一个长度为 nn 的字符串 ss,仅由字符 L、I 和 T 组成。

输出格式

对于每个测试用例,若无解则输出 −1-1。否则:

  • 第一行输出一个整数 mm (0≤m≤2n0 \le m \le 2n) —— 执行的操作次数。
  • 接下来的 mm 行中,第 ll 行输出一个整数 ii (1≤i<n+l−11 \le i < n + l - 1),表示在第 ii 和 i+1i + 1 个字符之间插入新字符。该操作必须满足 si≠si+1s_i \neq s_{i+1}。

若有多种解,可输出任意一种。注意本题不要求最小化操作次数。

输入输出样例

  • 输入#1

    3
    5
    TILII
    1
    L
    3
    LIT

    输出#1

    4
    1
    2
    3
    4
    -1
    0

说明/提示

第一个测试案例中,可执行以下操作序列:TILII →\rightarrow TLILII →\rightarrow TLTILII →\rightarrow TLTLILII →\rightarrow TLTLTILII。

第二个测试案例中无法进行任何操作,答案为 −1-1。

第三个测试案例中初始字符串已满足三种物质数量相等。

翻译由 DeepSeek R1 完成

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

首页