ページが読み込まれませんか? こちらをクリックすると直るかもしれません。
Placeholder

#6326
サブタスク

백열등 2 1s 1024MB

問題

N 개의 전등이 가로 일렬로 늘어서 있으며 왼쪽부터 순서대로 1 에서 N 까지의 번호가 매겨져 있다.

각 조명의 색상은 빨간색, 녹색 또는 파란색 중 하나다.

전등들의 색은 문자열 S로 표시되고, i ( 1≤i≤N ) 번째 전등의 색은 Si번째 문자가 R이면 빨강, G이면 녹색, B이면 청색이며, 처음에는 모든 전등이 켜져있다.

켜져있는 전등이 한 개 이상 있으면, 아래 세 종류의 조작을 좋아하는 순서로 좋아하는 횟수 실시할 수 있다 (조작을 한 번도 하지 않아도 상관 없다).

  • A 원을 지불하고 켜진 전등 중에서 가장 왼쪽에 있는 것을 끈다.

  • B 원을 지불하고 켜진 전등 중에서 가장 오른쪽에 있는 것을 끈다.

  • C 원을 지불하고 켜진 전등을 한 개 선택해, 좋아하는 색으로 다시 켠다.

멀리서 이 빛의 줄을 볼 때 깨끗한 흰색으로 보이게 하고 싶다.

이를 위해서는 켜져있는 빛을 왼쪽에서 보았을 때의 색의 배열이 RGBRGB...RGB(RGB적녹청)의 반복이 되어 있을 필요가 있다.

다만, 하나도 켜진 전등이 존재하지 않는 경우 RGB의 반복이라고 생각한다.

GBRGBR 및 RGBRG와 같은 색상의 배열은 조건을 충족시키지 않는다.

초기 전등의 상태와 조작에 필요한 금액의 정보가 주어졌을 때,
전등의 색 배열을 RGB반복으로 하는데 필요한 금액의 최솟값을 구하는 프로그램을 작성하시오.


入力

입력은 다음과 같은 형식으로 주어진다.

N

S

A\ B\ C

  • 1 \le N \le 200\ 000

  • S는 길이 N의 문자열로 세 개의 문자 R, G, B로만 이루어져 있다.

  • 1 \le A,B,C \le 10^9

  • N,A,B,C는 정수다.


出力

켜진 전등 색의 배열을 RGB반복으로 하기 위해서 필요한 금액의 최솟값을 출력한다.


部分問題

番号 点数 条件
#14点

N=3

#222点

N \le 300

#319点

N \le 10\ 000

#49点

N3의 배수, A=B=10^9,\ C=1

#510点

A=B=10^9,\ C=1

#636点

추가 제한 없음


例題 #1

6
GRBBRG
3 4 5
16

꺼진 조명을 -로 나태내보자.

  1. 3원을 지불해 -RBBRG로 바꾼다.

  2. 4원을 지불해 -RBBR-로 바꾼다.

  3. 4원을 지불해 -RBB--로 바꾼다.

  4. 5원을 지불해 -RGB--로 바꾼다.


例題 #2

3
BRG
1000000000 1000000000 1
3
  1. 1원을 지불, BGG

  2. 1원을 지불, BGB

  3. 1원을 지불, RGB


例題 #3

3
GRB
9 11 14
27
  1. 9원을 지불, -RB

  2. 9원을 지불, --B

  3. 9원을 지불, ---


例題 #4

9
RGBRGBRGB
1000000000 1000000000 1
0

例題 #5

20
BRGBRGBBGBBBGRRBBBRB
1000000000 1000000000 1
2000000008

例題 #6

23
BBGRGBBBBBBGRRGGGGBGGGG
786820955 792349124 710671229
10107224827


出典

JOI 2024 예선2

ログインしないとコードを書けません。