체크 박스

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

문제

데이터 테이블은 행과 열로 정보를 구조화해 보여주는 UI 요소이다. 체크 박스 열은 아래 그림과 같이 헤더에 헤더 체크 박스가 있고, 각 데이터 행에 체크 박스가 하나씩 있다. 각 데이터 행의 체크 박스는 체크된 상태 또는 해제된 상태를 가질 수 있다.

체크 박스 열에는 다음 세 가지 조작을 수행할 수 있다.

  • 토글: 임의의 데이터 행을 선택해 체크 박스의 상태를 바꾼다. 즉, 체크된 상태였으면 해제된 상태로, 해제된 상태였으면 체크된 상태로 바꾼다.
  • 전체 체크: 체크 박스가 해제된 상태인 데이터 행이 하나라도 있는 경우, 헤더 체크 박스를 눌러 모든 데이터 행의 체크 박스를 체크된 상태로 만든다.
  • 전체 해제: 모든 데이터 행의 체크 박스가 체크된 상태인 경우, 헤더 체크 박스를 눌러 모든 데이터 행의 체크 박스를 해제된 상태로 만든다.

예를 들어, 첫번째 또는 두번째 그림의 상태에서는 전체 체크 조작으로 세번째 그림의 상태로 만들 수 있고, 세번째 그림의 상태에서는 전체 해제 조작으로 첫번째 그림의 상태로 만들 수 있다.

$N$개의 데이터 행으로 이루어진 데이터 테이블에 체크 박스 열이 있고, 각 데이터 행의 현재 체크 박스 상태가 주어진다. 주어진 조작만을 사용하여 현재 체크 박스 열을 목표하는 체크 박스 열과 같게 만들려고 한다. 이때 최소 조작 횟수를 구해보자.

입력

첫째 줄에 데이터 행의 개수 $N$이 주어진다. ($1 \le N \le 100\ 000$)

다음 줄에 $N$개의 정수가 공백으로 구분되어 주어진다. $i$번째 수는 현재 체크 박스 열의 $i$번째 데이터 행의 체크 박스가 체크된 상태인 경우 $1$, 해제된 상태인 경우 $0$이다.

다음 줄에 $N$개의 정수가 공백으로 구분되어 주어진다. $i$번째 수는 목표하는 체크 박스 열의 $i$번째 데이터 행의 체크 박스 상태가 체크된 상태인 경우 $1$, 해제된 상태인 경우 $0$이다.

출력

현재 체크 박스 열을 목표하는 체크 박스 열로 만들기 위한 최소 조작 횟수를 출력한다.