Informatica Online Judge

  패셔니스타 [2120 / 0848]

Time Limit(Test case) : 2000 (ms)
Number of users who solved : 15   Total Tried : 15


The Champion of this Problem (C++) : tlsdydaud1 - 0ms / 397byte
My Best Submission (C++) : N/A

[koistudy.net (unkonwn)]
Writer ID : [gs16042]

Background

아침에 잠에서 깬 철수는 외출을 하기 위해 옷장에서 옷을 꺼내려고 한다.

패셔니스타인 철수는 옷장에서 다양한 옷을 꺼낸 후 입어볼려고 한다.

철수의 옷장은 많은 양의 옷을 담기 위해 특이한 형태로 만들어졌는데, n개의 칸이 일렬로 들어선 형태이다.

옷장에 문은 (n-2)개가 있는데, 왼쪽 혹은 오른쪽으로 문을 미는 형식이다.

원하는 옷장 문을 열 때, 이웃한 옷장 앞에 문이 없다면 그쪽으로 문을 옮겨 원하는 옷장을 열 수 있다.





예를 들어 이러한 형태로 문이 존재할 때 2번째 옷장을 열기 위해 2번째 위치에 있는 문을 1번째 위치로 옮기면 된다.
6번째 옷장을 열기 위해서는 5번째 위치의 문을 4번째 위치로 옮긴 후에 6번째 위치의 문을 5번째 위치로 옮기는 것이다.

철수는 입어볼 옷을 비교하기 위해 어떤 옷장에 있는 옷을 꺼낼지 순서를 정했다. 철수는 문을 최소한으로 옮겨 미리 생각해놓은 순서로 옷을 모두 입어보려고 한다.

Input

첫 번째 줄에 전체 옷장의 개수(4 이상 20 이하)가 주어진다.

그 후 두 번째 줄에 현재 문이 없는 옷장의 위치가 주어진다.

세 번째 줄에 옷을 꺼낼 위치의 개수(20 이하)가 주어지고, 다음 줄부터 사용할 옷장의 위치가 한 줄에 하나씩 주어진다.

Output

옷장문의 최소 이동 횟수를 출력한다.

IO Example

입력
7
2 5
5
3
1
6
1
5

출력
5

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]