atcoder#ABC286C. [ABC286C] Rotate and Palindrome

[ABC286C] Rotate and Palindrome

配点 : 300300

問題文

長さ NN の文字列 SS が与えられます。Si (1iN)S_i\ (1\leq i \leq N)SS の左から ii 番目の文字とします。

あなたは以下の 22 種類の操作を好きな順番で 00 回以上好きな回数行うことができます。

  • AA 円払う。 SS の左端の文字を右端に移動する。すなわち、S1S2SNS_1S_2\ldots S_NS2SNS1S_2\ldots S_NS_1 に変える。
  • BB 円払う。 11 以上 NN 以下の整数 ii を選び、 SiS_i を好きな英小文字で置き換える。

SS を回文にするためには最低で何円必要ですか?

回文とは ある文字列 T について、 T の長さを |T| として、全ての整数 i (1 \le i \le |T|) について、 T の前から i 文字目と後ろから i 文字目が同じであるとき、またそのときに限って、 T は回文です。

制約

  • 1N50001\leq N \leq 5000
  • 1A,B1091\leq A,B\leq 10^9
  • SS は英小文字からなる長さ NN の文字列
  • SS 以外の入力は全て整数

入力

入力は以下の形式で標準入力から与えられる。

NN AA BB

SS

出力

答えを整数として出力せよ。

5 1 2
rrefa
3

最初に 22 番目の操作を 11 回行います。22 円払い、i=5i=5 として S5S_5e で置き換えます。 SSrrefe となります。

次に 11 番目の操作を 11 回行います。11 円払い、SSrefer となります。これは回文です。

よって 33 円払うことで SS を回文にすることができました。 22 円以下払うことで SS を回文にすることは不可能なので、これが答えです。

8 1000000000 1000000000
bcdfcgaa
4000000000

答えは 3232 bit 整数に収まらない場合があることに注意してください。