第 023 场 AtCoder Beginner Contest
翻译中…
Problem Statement
翻译中…
高橋君は趣味でアクセサリーを作っている。
翻译中…
アクセサリーは a, b, c のいずれか $1$ 文字が書かれたブロックを横 $1$ 列に並べることで作成できる。
翻译中…
高橋君は、以下の手順でアクセサリーの作成を行う:
翻译中…
- 手順
$0$: 高橋君はb$1$文字からなるアクセサリーを作成する。
翻译中…
以降の手順では、既にあるアクセサリーの両端にブロックを $1$ つずつ追加することでアクセサリーを改造する。
翻译中…
- 手順
$3n + 1 (n ≧ 0)$: 手順$3n$で完成したアクセサリーの左端に文字aが書かれたブロックを、右端に文字cが書かれたブロックを付け足す。 - 手順
$3n + 2 (n ≧ 0)$: 手順$3n+1$で完成したアクセサリーの左端に文字cが書かれたブロックを、右端に文字aが書かれたブロックを付け足す。 - 手順
$3n (n ≧ 1)$: 手順$3n-1$で完成したアクセサリーの左端に文字bが書かれたブロックを、右端に文字bが書かれたブロックを付け足す。
翻译中…
高橋君はアクセサリーの作成を好きな手順の直後に終了することができる。終了した場合、アクセサリーには、アクセサリーを構成するブロックに書かれた文字を左から右に読んだものと同じ名前が付けられる。
翻译中…
例えば、手順 $0$, $1$, $2$, $3$ それぞれの直後にアクセサリーの作成を終了した場合、アクセサリーの名前は順に、b, abc, cabca, bcabcab となる。
翻译中…
文字列 $S$ が与えられるので、その文字列がアクセサリーの名前として考えられるかを判定し、考えられるなら何番目の手順の直後にアクセサリーの作成を終了したのかを求めよ。
翻译中…
Input
翻译中…
入力は以下の形式で標準入力から与えられる。
翻译中…
N
S
翻译中…
$1$行目には、文字列$S$の長さを表す整数$N (1 ≦ N ≦ 100)$が与えられる。$2$行目には、半角の小文字アルファベットのみからなる文字列$S$が与えられる。
翻译中…
Output
翻译中…
文字列 $S$ が手順 $K$ の直後にアクセサリーの作成を終了したときのアクセサリーの名前と等しいような整数 $K$ が存在する場合は整数 $K$ を、いつアクセサリーの作成を終了してもアクセサリーの名前が $S$ とならないときは $-1$ を $1$ 行に出力せよ。出力の末尾にも改行を入れること。
翻译中…
样例
Input #1
3
abc
Output #1
1
- 手順 $1$ の直後にアクセサリーの作成を終了したときのアクセサリーの名前は `abc` となる。
Input #2
6
abcabc
Output #2
-1
- 文字列 `abcabc` はアクセサリーの名前として考えられない。
Input #3
7
atcoder
Output #3
-1
- 文字列 $S$ には `a`, `b`, `c` 以外の文字が入ることがある。
Input #4
19
bcabcabcabcabcabcab
Output #4
9
题目信息
题面与样例版权归 AtCoder 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。