N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 < i < N)번 스위치를 누르면 i-1, i, i+1의 세 개의 전구의 상태가 바뀐다. 즉, 꺼져 있는 전구는 켜지고, 켜져 있는 전구는 꺼지게 된다. 1번 스위치를 눌렀을 경우에는 1, 2번 전구의 상태가 바뀌고, N번 스위치를 눌렀을 경우에는 N-1, N번 전구의 상태가 바뀐다.
N개의 전구들의 현재 상태와 우리가 만들고자 하는 상태가 주어졌을 때, 그 상태를 만들기 위해 스위치를 최소 몇 번 누르면 되는지 알아내는 프로그램을 작성하시오.
# 2138
import sys
input = lambda: sys.stdin.readline().strip()
n = int(input())
my_list = list(input())
my_list_c = my_list[::]
out_list = list(input())
def change(array, i):
if array[i] == "0":
array[i] = "1"
else:
array[i] = "0"
di = [-1, 0, 1]
count_1 = 0
for i in range(1, n):
if my_list[i-1] != out_list[i-1]:
for d in di:
ni = i + d
if ni < 0 or ni >= n:
continue
change(my_list, ni)
count_1 += 1
count_2 = 1
change(my_list_c, 0)
change(my_list_c, 1)
for i in range(1, n):
if my_list_c[i-1] != out_list[i-1]:
for d in di:
ni = i + d
if ni < 0 or ni >= n:
continue
change(my_list_c, ni)
count_2 += 1
iscount_1True = my_list == out_list
iscount_2True = my_list_c == out_list
if iscount_1True and iscount_2True:
print(min(count_1, count_2))
elif iscount_1True:
print(count_1)
elif iscount_2True:
print(count_2)
else:
print("-1")
# my_list[i-1] == out_list[i-1] -> 스위치 동작 X
# my_list[i-1] != out_list[i-1] -> 스위치 동작 O