구간 NOT 과 단일 NOT

면접 대비

시간 제한1초메모리 제한1024 MB

요약
길이 N인 두 이진 문자열을 한 문자열의 접두사 반전(비용 c1) 또는 두 문자열의 같은 위치 동시 반전(비용 c2)만으로 모두 1로 만드는 최소 비용을 구한다.
난이도

보통10점 중 7점

유형
그리디, 동적 계획법, 누적 합, 구현
정답자
아직 제출이 없습니다

문제

00과 11로만 구성된 두 문자열 s_1s\_1, s_2s\_2가 있다. 두 문자열의 길이는 NN으로 같다.

이제 다음 두 가지 연산을 00회 이상 반복해 두 문자열의 모든 문자를 11로 만들려고 한다. 각 연산을 한 번 하는 데 소모되는 비용은 각각 c_1c\_1, c_2c\_2이다.

  1. 11 이상 NN 이하의 정수 aa를 선택하여, 두 문자열 s_1s\_1, s_2s\_2 중 한 문자열의 11번째 문자부터 aa번째 문자까지 동시에 반전한다.
  2. 11 이상 NN 이하의 정수 bb를 선택하여, 두 문자열 s_1s\_1, s_2s\_2의 bb번째 문자를 동시에 반전한다.

문자열 SS의 ii번째 문자를 반전하는 연산은 SS의 ii번째 문자가 11이라면 00으로 만들고, 00이라면 11로 만드는 연산이다.

또한 문자열 SS의 LL번째 문자부터 RR번째 문자까지 동시에 반전하는 연산은 L≤i≤RL\le i\le R을 만족하는 모든 정수 ii에 대해 동시에 문자열 SS의 ii번째 문자를 반전하는 연산이다.

s_1s\_1, s_2s\_2의 모든 문자를 11로 만드는 데 필요한 최소 비용을 구해 보자.

입력

첫째 줄에 문자열 s_1s\_1과 s_2s\_2의 길이 NN이 주어진다. (1≤N≤100,000)(1\le N\le 100\\, 000)

둘째 줄에 문자열 s_1s\_1이 주어진다.

셋째 줄에 문자열 s_2s\_2가 주어진다.

넷째 줄에 두 정수 c_1c\_1, c_2c\_2가 공백으로 구분되어 주어진다. (1≤c_1,c_2≤109)(1\le c\_1, c\_2 \le 10^9)

출력

s_1s\_1, s_2s\_2의 모든 문자를 11로 만드는 데 필요한 최소 비용을 출력한다.

예제4

  1. 예제 1

    입력
    5
    00100
    00011
    10 1
    
    예상 출력
    21
    
  2. 예제 2

    입력
    5
    00100
    00011
    1 10
    
    예상 출력
    4
    
  3. 예제 3

    입력
    2
    01
    11
    5 2
    
    예상 출력
    5
    
  4. 예제 4

    입력
    5
    11111
    11111
    10 9
    
    예상 출력
    0