나사 하나를 왼쪽으로 돌리면 아래 나사들이 함께 돌아갈 때, 원하는 상태로 만들기 위한 최소 회전 횟수를 구한다.
보통6그리디수학면접 대비아직 제출이 없습니다시간 제한1초메모리 제한128 MB위아래로 이어진 숫자 나사가 N개 있다. 가장 위가 숫자 나사 1이고 가장 아래가 숫자 나사 N이다. 나사마다 면이 10개 있고, 각 면에는 오른쪽 방향으로 0, 1, 2, 3, …, 9가 순서대로 하나씩 적혀 있다.
나사 하나를 왼쪽으로 한 칸 돌리면 그 나사보다 아래에 있는 나사가 모두 함께 한 칸씩 돌아간다. 오른쪽으로 돌릴 때는 그 나사만 돌고 아래 나사는 따라 돌지 않는다. 왼쪽으로 한 칸 돌아간 나사의 숫자는 1 커지며 9 다음에는 0이 오고, 오른쪽으로 한 칸 돌아간 나사의 숫자는 1 작아지며 0 다음에는 9가 온다.
정면에서 위에서 아래로 숫자를 읽어 내려간 현재 상태와 원하는 상태가 주어진다. 현재 상태를 원하는 상태로 만드는 데 필요한 최소 회전 칸수를 구하는 프로그램을 작성하라. 어떻게 돌렸는지는 출력하지 않는다.
예를 들어 나사가 세 개이고 현재 상태가 326, 원하는 상태가 446이라면 최소 회전 칸수는 4이다. 나사 1을 왼쪽으로 한 칸 돌리면 437이 되고, 나사 2를 왼쪽으로 한 칸 돌리면 448이 되며, 나사 3을 오른쪽으로 두 칸 돌리면 446이 된다.

첫째 줄에 숫자 나사의 개수 N이 주어진다. 둘째 줄에 현재 상태가, 셋째 줄에 원하는 상태가 주어진다. 두 줄 모두 0부터 9까지의 숫자 N개로 이루어진 문자열이며, 맨 앞이 0일 수도 있다. N은 3 이상 10,000 이하이다.
첫째 줄에 현재 상태에서 원하는 상태로 만드는 데 필요한 최소 회전 칸수를 출력한다.