만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

노브 돌리기

면접 대비

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

요약
A0에서 시작해 A1부터 AN까지 순서대로 각도를 맞출 때, 매 단계 360도 원에서 두 방향 중 짧은 쪽을 택한 회전량의 합을 구한다.
난이도

쉬움10점 중 3점

유형
구현, 수학, 그리디, 시뮬레이션
정답자
아직 제출이 없습니다

문제

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

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

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

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

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

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

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

입력

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

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

그 다음 NN개 줄에 걸쳐 준겸이가 맞추어야 하는 노브 각도 A1A_1, A2A_2, ... ,ANA_N가 한 줄에 하나씩 주어진다. (0≤Ai≤3590 \le A_i \le 359, 1≤i≤N1 \le i \le N)

출력

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

예제1

  1. 예제 1

    입력
    2
    180
    270
    135
    
    예상 출력
    225