AT_abc023_b [ABC023B] 手芸王

题目描述

高桥君的兴趣是制作饰品。 饰品可以通过将写有 `a`、`b` 或 `c` 的方块横向排列一行来制作。 高桥君按照以下步骤制作饰品: - 步骤 $0$:高桥君制作一个仅包含一个字符 `b` 的饰品。 之后的每一步,他会在已有饰品的两端各添加一个方块,对饰品进行改造。 - 步骤 $3n+1\ (n\geq 0)$:在步骤 $3n$ 完成的饰品左端添加写有 `a` 的方块,右端添加写有 `c` 的方块。 - 步骤 $3n+2\ (n\geq 0)$:在步骤 $3n+1$ 完成的饰品左端添加写有 `c` 的方块,右端添加写有 `a` 的方块。 - 步骤 $3n\ (n\geq 1)$:在步骤 $3n-1$ 完成的饰品左端和右端各添加写有 `b` 的方块。 高桥君可以在任意一个步骤结束后停止制作饰品。停止后,饰品的名字就是从左到右依次读取饰品方块上字符得到的字符串。 例如,在步骤 $0$、$1$、$2$、$3$ 结束时,饰品的名字依次为 `b`、`abc`、`cabca`、`bcabcab`。 现在给定一个字符串 $S$,请判断该字符串是否可能作为某一步骤结束时饰品的名字。如果可以,输出在第几步结束时得到该名字;如果不可以,输出 $-1$。

输入格式

输入从标准输入中按以下格式给出。 > $N$ $S$ - 第 $1$ 行给出一个整数 $N$,表示字符串 $S$ 的长度,$1\leq N\leq 100$。 - 第 $2$ 行给出仅由小写英文字母组成的字符串 $S$。

输出格式

如果存在某个整数 $K$,使得在步骤 $K$ 结束时饰品的名字等于字符串 $S$,则输出该整数 $K$;如果无论在哪一步结束饰品的制作,饰品的名字都不等于 $S$,则输出 $-1$。输出末尾需换行。

说明/提示

### 样例解释 1 - 在步骤 $1$ 结束时饰品的名字为 `abc`。 ### 样例解释 2 - 字符串 `abcabc` 不可能作为饰品的名字。 ### 样例解释 3 - 字符串 $S$ 可能包含除 `a`、`b`、`c` 以外的字符。 由 ChatGPT 4.1 翻译