시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB81743538554.922%

문제

준겸이는 오락실에 가서 게임을 하는 것을 좋아한다. 그 중에서 준겸이가 특히 좋아하는 게임은, 바로 노브를 정확하게 돌리는 게임이다. 

노브는 왼쪽 또는 오른쪽으로 돌려 조작할 수 있는 장치를 말한다. 일반적으로 볼륨을 조절할 때 자주 쓰인다. 만약 노브가 돌아가는 모습이 잘 상상이 가지 않는다면, 걸림 없이 계속 돌릴 수 있는 자동차 핸들을 상상해도 괜찮다.

노브가 얼마나 돌아갔는지는, 현재 노브가 어느 각도에 있는지로 나타낼 수 있다. 노브의 각도는 0도부터 359도 사이의 정수로 나타낼 수 있다. 0도부터 시작해 노브를 오른쪽으로 1도씩 돌리면 1도, 2도, 3도, ... 358도, 359도를 거쳐 다시 0도로 되돌아올 것이다. 반대로, 노브를 왼쪽으로 1도씩 돌리면 359도, 358도.... 와 같이 각도가 변화할 것이다.

준겸이는 게임의 초고수인 태수처럼 노브를 잘 돌리고 싶었지만, 그러지 못하자 당신에게 노브를 잘 돌릴 수 있게 해주는 프로그램을 작성하게 시키기로 했다. 준겸이는 주어지는 $N$개의 각도에 노브를 순서대로 맞추어야 한다. 맨 처음에 노브는 각도 $A_0$에 있다. 준겸이는 노브를 적절히 돌려, 노브의 각도를 순서대로 $A_1$, $A_2$, $A_3$, ... ,$A_N$으로 맞춰야 한다.

예를 들어 $A_0 = 180$이고, $A_1 = 270$, $A_2 = 135$라 하자. 그러면 준겸이는 맨 처음에 180도에 있는 노브를 오른쪽으로 90도만큼 돌려 270도로 맞출 수 있다. 그 다음 노브를 오른쪽으로 225도만큼 더 돌려 135도로 맞출 수 있다. 이 경우 준겸이는 노브를 총 315도만큼 돌린 셈이 된다.

준겸이는 노브를 잘 돌리기 위해서는 노브를 가능한 조금 돌려야 한다고 생각한다. 따라서 준겸이는 노브를 최소로 돌렸을 때, 돌려야 하는 각도의 총합을 알고 싶다.

예를 들어 위와 같이 $A_0 = 180$이고, $A_1 = 270$, $A_2 = 135$라 하자. 그러면 준겸이는 맨 처음에 180도에 있는 노브를 오른쪽으로 90도만큼 돌려 270도로 맞출 수 있다. 그 다음 노브를 오른쪽이 아닌 왼쪽으로 135도만큼 더 돌려 135도로 맞출 수 있다. 이 경우 준겸이는 노브를 총 225도만큼 돌린 셈이 된다. 이 예시의 경우 이것보다 노브를 적게 돌려서 주어진 각도에 순서대로 노브를 위치시킬 수 있는 방법이 없다. 

입력

첫째 줄에 준겸이가 맞추어야 하는 노브 각도의 개수 $N$이 주어진다. ($1 \le N \le 100$)

둘째 줄에 노브의 초기 각도 $A_0$가 주어진다. ($0 \le A_0 \le 359$)

그 다음 $N$개 줄에 걸쳐 준겸이가 맞추어야 하는 노브 각도 $A_1$, $A_2$, ... ,$A_N$가 한 줄에 하나씩 주어진다. ($0 \le A_i \le 359$, $1 \le i \le N$)

출력

준겸이가 최소로 노브를 돌릴 때 돌려야 하는 각도의 합을 출력한다.

예제 입력 1

2
180
270
135

예제 출력 1

225

출처

University > 고려대학교 > 2021 고려대학교 프로그래밍 경시대회 (KCPC) > Div. 2 A번