Tomki

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

알고리즘 파괴자 대회에서 쓰는 소프트웨어는 Tomek W.가 만들었다. 올해는 Tomek M.이 이 소프트웨어를 관리하며 대회가 완벽하게 진행되도록 애쓰고 있다. 그래서인지 Tomek은 요즘 악몽을 꾼다. 어젯밤 그는 무한히 넓은 체스판 위를 뛰어다니는 나이트가 되는 꿈을 꾸었다.

나이트가 할 수 있는 이동은 두 정수쌍 (a,b)(a, b)(c,d)(c, d)로 정해진다. 칸 (x,y)(x, y)에 있는 나이트는 (x+a,y+b)(x + a, y + b), (xa,yb)(x - a, y - b), (x+c,y+d)(x + c, y + d), (xc,yd)(x - c, y - d) 중 한 칸으로 이동할 수 있다.

나이트는 (0,0)(0, 0)에서 출발한다. 여러 번 이동해도 좋으니, (0,0)(0, 0)에서 도달할 수 있으면서 (0,0)(0, 0)이 아닌 칸 (x,y)(x, y) 중에서 x+y|x| + |y|가 가장 작은 칸을 찾고 싶다.

다음을 수행하는 프로그램을 작성하여라.

  • 나이트의 이동을 나타내는 두 정수쌍 (a,b)(a, b)(c,d)(c, d)를 읽는다. 두 쌍은 각각 (0,0)(0, 0)이 아니다.
  • (0,0)(0, 0)에서 (여러 번 이동해서라도) 도달할 수 있고 (0,0)(0, 0)이 아닌 칸 (x,y)(x, y) 중에서 x+y|x| + |y|가 최소가 되는 칸을 정한다.
  • 그 값 x+y|x| + |y|를 출력한다.

입력

첫째 줄에 네 정수 aa, bb, cc, dd가 주어진다 (100000a,b,c,d100000-100000 \le a, b, c, d \le 100000). (a,b)(a, b)(c,d)(c, d)는 각각 (0,0)(0, 0)이 아니다.

출력

x+y|x| + |y|의 가능한 최솟값을 정수 하나로 출력한다.