해결한 사람
0
명
정답률
0.00
%
시간 제한
1000
ms
메모리 제한
245
MB
영과 일로 이루어진 문자열 , , ..., 이 주어진다.
연속한 원소들의 수열 , , …, (1≤ i≤ j≤ n)을 문자열 a의 부분 문자열이라고 부르자.
다음 연산을 원하는 횟수만큼 적용할 수 있다:
이 연산들은 어떤 순서로든 적용할 수 있다. 같은 부분 문자열에 연산을 여러 번 적용하는 것도 허용된다.
일로만 이루어진 문자열을 얻기 위해 지불해야 하는 동전의 최솟값은 얼마인가?
입력의 첫 번째 줄에는 정수 n, x, y (1 ≤ n ≤ 300 000, 0 ≤ x, y ≤ )이 주어진다. 이는 각각 문자열의 길이, 첫 번째 연산(부분 문자열 뒤집기)의 비용, 두 번째 연산(부분 문자열의 모든 원소 반전)의 비용이다.
두 번째 줄에는 영과 일로 이루어진 길이 n의 문자열 a가 주어진다.
일로만 이루어진 문자열을 얻기 위해 지불해야 하는 연산의 총비용의 최솟값을 하나의 정수로 출력한다. 어떤 연산도 수행할 필요가 없다면 0을 출력한다.
5 10 1
01000
27 2 3
1111111
05 1 10
01000
11첫 번째 예제에서는 먼저 부분 문자열 을 뒤집은 다음, 부분 문자열 을 반전해야 한다.
그러면 문자열은 다음과 같이 바뀐다:
«01000» → «10000» → «11111».
연산의 총비용은 1 + 10 = 11이다.
두 번째 예제에서는 먼저 부분 문자열 을 반전한 다음, 부분 문자열 을 반전해야 한다.
그러면 문자열은 다음과 같이 바뀐다:
«01000» → «11000» → «11111».
전체 비용은 1 + 1 = 2이다.
세 번째 예제에서는 문자열이 이미 일로만 이루어져 있으므로, 답은 0이다.