Problem J
Jumbled Compass

cc-by NCPC 2016
Jonas is developing the JUxtaPhone and is tasked with animating the compass needle. The API is simple: the compass needle is currently in some direction (between $0$ and $359$ degrees, with north being $0$, east being $90$), and is being animated by giving the degrees to spin it. If the needle is pointing north, and you give the compass an input of $90$, it will spin clockwise (positive numbers mean clockwise direction) to stop at east, whereas an input of $-45$ would spin it counterclockwise to stop at north west.

The compass gives the current direction the phone is pointing and Jonas’ task is to animate the needle taking the shortest path from the current needle direction to the correct direction. Many ifs, moduli, and even an arctan later, he is still not convinced his minimumDistance function is correct; he calls you on the phone.


The first line of input contains an integer $n_1$ ($0 \le n_1 \le 359$), the current direction of the needle. The second line of input contains an integer $n_2$ ($0 \le n_2 \le 359$), the correct direction of the needle.


Output the change in direction that would make the needle spin the shortest distance from $n_1$ to $n_2$. A positive change indicates spinning the needle clockwise, and a negative change indicates spinning the needle counter-clockwise. If the two input numbers are diametrically opposed, the needle should travel clockwise. I.e., in this case, output $180$ rather than $-180$.

Sample Input 1 Sample Output 1
Sample Input 2 Sample Output 2
Sample Input 3 Sample Output 3

Please log in to submit a solution to this problem

Log in