램프
시간 제한1초메모리 제한256 MB
두 이진 문자열 A와 B가 주어질 때, 구간을 0으로 만들기, 1로 만들기, 뒤집기 세 연산만으로 A를 B로 바꾸는 최소 연산 횟수를 구한다.
문제
긴 복도에 개의 램프가 일렬로 나열되어 있다. 램프는 왼쪽부터 차례로 1번부터 번까지의 번호가 붙어있다. 각 램프는 off또는 on중 하나의 상태이다.
램프의 상태를 바꾸는 특별한 기작이 있어서, 한 번의 작업으로 다음 셋 중 한 가지 동작을 할 수 있다.
- 을 만족하는 정수 와 를 골라서 , , , 를 off 상태로 만든다.
- 을 만족하는 정수 와 를 골라서 , , , 를 on 상태로 만든다.
- 을 만족하는 정수 와 를 골라서 , , , 의 상태를 바꾼다. (off를 on으로, on을 off로)
처음에 램프의 상태는 길이 의 문자열 로 표현된다. 의 번째 () 문자가 0이면 번째 램프가 off 상태인 것이고, 1이면 on 상태인 것이다. 우리는 만들고 싶은 상태가 길이 의 문자열 로 표현 되어 있고, 작업의 수를 최소한으로 하여 만들고 싶다. 의 번째 () 문자가 0이면 번째 램프가 off 상태인 것이고, 1이면 on 상태인 것이다.
램프의 수와, 현재 상태와 만들고 싶은 상태가 주어졌을 때, 만들고 싶은 상태로 바꾸는 데에 드는 연산의 수의 최솟값을 출력하여라.
입력
표준 입력에서 다음과 같은 형식으로 주어진다.
출력
표준 출력으로 한 개의 줄을 출력하여라. 이는 원하는 상태를 만들기 위한 연산의 수의 최솟값이다.
제한
- .
- 와 는 길이 의 문자열이다.
- 와 를 이루는 문자들은
0혹은1이다.