페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#5678

에디터 3000초 1024MB

문제

우리는 메모장에 길이 N의 문자열 S를 적고 싶다.

단순히 N개의 타이핑을 통해 문자열을 적을 수도 있지만, 이는 너무 비효율적이다.

우리는 다음의 3가지 방법으로 문자열을 조작할 수 있다.

현재 화면에 보이는 문자열이 X이고, 클립보드에 저장된 문자열이 Y라고 하자.

1) 문자열의 끝에 문자 하나를 추가한다(X=X+c). 이 연산은 A의 추가적인 피로도가 든다.

2) 현재 문자열을 클립보드로 자른다(Y=X, X=""). 이 연산은 B의 ​추가적인 ​피로도가 든다.

3) 현재 문자열에 클립보드에 저장되어 있는 문자열을 붙인다(X=X+Y). 이 연산은 C의 ​추가적인 피로도가 든다.

A, B, C의 값이 주어질 때, S를 만들 수 있는 최소의 피로도를 구하시오.


입력

첫 줄에 N이 주어진다. (1<=N<=2500)

그 다음 줄에 만들고 싶은 길이 N의 문자열 S가 주어진다. (각 문자는 모두 영어 소문자이다.)

그 다음 줄에 A가 주어진다. (1<=A<=10^9)

그 다음 줄에 B가 주어진다. (1<=B<=10^9) ​

그 다음 줄에 C가 주어진다. (1<=C<=10^9)


출력

S를 만들 수 있는 최소의 피로도를 구하시오.


부분문제

번호 점수 조건
#12점

N=3

#25점

S는 'a'로만 이루어져있다.

#313점

N<=30

#410점

N<=200

#532점

N<=1000

#638점

제한 없음


예제1

입력
11
mississippi
10
5
2
출력
88

예제2

입력
16
aaaaaaaaaaaaaaaa
1
1
1
출력
9

출처

JOI Spring Camp 2022 Day 2

역링크 공식 문제집만