코드를 보기 좋게 정렬하기

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

문제

한 개발자가 작은 회사에서 소스 코드의 들여쓰기를 정리하고 있다. 들여쓰기란 각 줄 앞에 탭 문자를 넣어 줄의 깊이를 나타내는 것이다. 사용하는 편집기는 연속된 여러 줄을 한꺼번에 선택한 뒤, 선택한 모든 줄의 앞에 탭 하나를 추가하거나 삭제할 수 있다.

코드는 총 N줄이다. 각 줄의 현재 탭 개수와 목표 탭 개수가 주어진다. 한 번의 편집은 다음 두 단계로 이루어진다.

  • 연속된 줄 하나 이상을 선택한다.
  • 선택한 모든 줄의 앞에 탭 1개를 추가하거나, 선택한 모든 줄에서 탭 1개를 삭제한다.

선택한 줄의 수와 관계없이 위 작업 전체를 한 번의 편집으로 센다. 단, 선택한 줄 중 탭이 하나도 없는 줄이 있으면 탭을 삭제할 수 없다.

모든 줄의 탭 개수를 목표 상태로 바꾸는 데 필요한 편집 횟수의 최솟값을 구하시오.

입력

첫째 줄에 줄의 개수 N(1 <= N <= 1,000)이 주어진다.

둘째 줄에는 1번 줄부터 N번 줄까지 현재 탭 개수가 순서대로 주어진다. 각 값은 0 이상 80 이하의 정수이다.

셋째 줄에는 1번 줄부터 N번 줄까지 목표 탭 개수가 순서대로 주어진다. 각 값도 0 이상 80 이하의 정수이다.

출력

모든 줄의 들여쓰기를 목표 상태로 만드는 데 필요한 편집 횟수의 최솟값을 출력한다.