atcoder#ABC286C. [ABC286C] Rotate and Palindrome

[ABC286C] Rotate and Palindrome

题目描述

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

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

  • A A 円払う。 S S の左端の文字を右端に移動する。すなわち、S1S2 SN S_1S_2\ldots\ S_N S2 SNS1 S_2\ldots\ S_NS_1 に変える。
  • B B 円払う。 1 1 以上 N N 以下の整数 i i を選び、 Si S_i を好きな英小文字で置き換える。

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

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

输入格式

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

N N A A B B S S

输出格式

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

题目大意

给出一个字符串,有两种操作:

  • 花费 A ,把串的第一位放到最后一位
  • 花费 B ,修改串的一个字母

求把原串变成回文串的最小代价。

输入: 先输入 n,A,Bn,A,B ,第二行字符串 SS

5 1 2
rrefa
3
8 1000000000 1000000000
bcdfcgaa
4000000000

提示

制約

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

Sample Explanation 1

最初に 2 2 番目の操作を 1 1 回行います。2 2 円払い、i=5 i=5 として S5 S_5 e で置き換えます。 S S rrefe となります。 次に 1 1 番目の操作を 1 1 回行います。1 1 円払い、S S refer となります。これは回文です。 よって 3 3 円払うことで S S を回文にすることができました。 2 2 円以下払うことで S S を回文にすることは不可能なので、これが答えです。

Sample Explanation 2

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