spoj#IMP. The Imp
The Imp
An Imp jumps on an infinite chessboard. Moves possible for the Imp are described by two pairs of integers: (a,b) and (c,d) - from square (x,y) the Imp can move to one of the squares: (x+a,y+b), (x-a,y-b), (x+c,y+d), (x-c,y-d). We want to know for which square different from (0,0) to which the Imp can jump from (0,0) (possibly in many moves) the value |x|+|y| is the lowest.
Task
Write a program which
- reads from standard input two pairs (a,b) and (c,d) of integers, different from (0,0), describing moves of the Imp,
- determines a pair of integers (x,y) different from (0,0), for which the Imp can jump (possibly in many moves) from square (0,0) to square (x,y) and for which the value |x|+|y| is the lowest.
- writes out to standard output the value |x|+|y|.
Input
Ten test cases. Each test consists of four numbers a,b,c,d in one line, separated
by spaces.
-100000 <= a, b, c, d <= 100000
Output
For every test case your program should write a single line with a number equal the lowest possible value |x|+|y|.
Example
Input: 13 4 17 5 [and 9 test cases more] Output: 2 [and 9 answers more]