P12443 [NERC2023] LOL Lovers
题目描述
在一张长桌上摆放着排成一行的 $n$ 个食物。每个食物要么是一个面包(用大写拉丁字母 $\texttt{L}$ 表示,ASCII 码为 76),要么是一个洋葱(用大写拉丁字母 $\texttt{O}$ 表示,ASCII 码为 79)。桌上至少有一个面包和一个洋葱。
你和你的朋友想要分配桌上的食物:你将拿走这排食物的一个前缀(最左边的若干个物品),而你的朋友将拿走剩下的部分。然而,分配需要满足以下几个限制条件:
- 每个人都必须至少拿到一个物品。
- 你拿到的面包数量必须与朋友拿到的面包数量不同。
- 你拿到的洋葱数量必须与朋友拿到的洋葱数量不同。
请找出任意一个满足条件的分割方案,并输出你拿走的物品数量;如果不存在这样的方案,则报告无解。
输入格式
第一行包含一个整数 $n$($2 \le n \le 200$)——桌上食物的数量。
第二行包含一个长度为 $n$ 的字符串,由字母 $\texttt{L}$ 和 $\texttt{O}$ 组成。第 $i$ 个字符表示桌上第 $i$ 个食物的类型:$\texttt{L}$ 代表面包,$\texttt{O}$ 代表洋葱。保证该字符串中至少有一个 $\texttt{L}$ 和一个 $\texttt{O}$。
输出格式
输出一个整数 $k$,表示如果你拿走最左边的 $k$ 个物品,而你的朋友拿走剩下的 $n - k$ 个物品,那么:
- 你和朋友各自至少拿到一个物品;
- 你的面包数量与朋友的面包数量不同;
- 你的洋葱数量与朋友的洋葱数量不同。
如果存在多个可能的答案,输出其中任意一个即可。如果不存在满足条件的分割方案,则输出 $-1$。
说明/提示
在第一个样例中,任何分割方式下,左边和右边的部分都各有一个面包,因此无法满足条件。
在第二个样例中,分割为 $\texttt{L}$ 和 $\texttt{O}$,此时两边的面包数量不同(1 和 0),洋葱数量也不同(0 和 1)。
在第三个样例中,任意选择 1、2 或 3 作为 $k$ 都是正确答案。
翻译由 DeepSeek V3 完成