만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

램프

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

요약
길이 N인 이진 문자열 A와 B가 주어질 때, 구간을 0으로 만들거나 1로 만들거나 뒤집는 연산으로 A를 B로 바꾸는 최소 횟수를 구합니다.
난이도

보통10점 중 6점

유형
문자열, 그리디
정답자
아직 제출이 없습니다

문제

긴 복도에 NN개의 램프가 일렬로 나열되어 있다. 램프는 왼쪽부터 차례로 1번부터 NN번까지 번호가 붙어 있다. 각 램프는 off 또는 on 중 하나의 상태이다.

램프의 상태를 바꾸는 특별한 기작이 있어서, 한 번의 작업으로 다음 세 가지 동작 중 한 가지를 할 수 있다.

  • 1≤p≤q≤N1 \le p \le q \le N을 만족하는 정수 pp와 qq를 골라 pp, p+1p+1, ⋯\cdots, qq를 off 상태로 만든다.
  • 1≤p≤q≤N1 \le p \le q \le N을 만족하는 정수 pp와 qq를 골라 pp, p+1p+1, ⋯\cdots, qq를 on 상태로 만든다.
  • 1≤p≤q≤N1 \le p \le q \le N을 만족하는 정수 pp와 qq를 골라 pp, p+1p+1, ⋯\cdots, qq의 상태를 바꾼다(off는 on으로, on은 off로).

처음 램프의 상태는 길이 NN의 문자열 AA로 표현된다. AA의 ii번째(1≤i≤N1 \le i \le N) 문자가 0이면 ii번째 램프가 off 상태이고, 1이면 on 상태이다. 만들고 싶은 상태는 길이 NN의 문자열 BB로 나타내며, 같은 규칙으로 읽는다. 작업 수를 최소로 하여 BB의 상태를 만들고 싶다.

램프의 수, 현재 상태, 만들고 싶은 상태가 주어졌을 때, 그 상태로 바꾸는 데 드는 연산 수의 최솟값을 출력하여라.

입력

첫째 줄에 NN이 주어진다. 둘째 줄에 AA가 주어진다. 셋째 줄에 BB가 주어진다.

출력

원하는 상태를 만들기 위한 연산 수의 최솟값을 한 줄에 출력한다.

제한

  • 1≤N≤1 000 0001 \le N \le 1\ 000\ 000.
  • AA와 BB는 길이 NN의 문자열이다.
  • AA와 BB를 이루는 문자는 0 또는 1이다.

예제3

  1. 예제 1

    입력
    8
    11011100
    01101001
    
    예상 출력
    4
    
  2. 예제 2

    입력
    13
    1010010010100
    0000111001011
    
    예상 출력
    3
    
  3. 예제 3

    입력
    18
    001100010010000110
    110110001000100101
    
    예상 출력
    5