아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Tomki

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

요약
영이 아닌 두 이동 벡터가 주어질 때, 두 벡터의 정수 계수 결합으로 도달할 수 있는 영이 아닌 격자점까지의 최소 맨해튼 거리를 구한다.
난이도

보통10점 중 7점

유형
수학, 정수론, 기하, 그리디
정답자
아직 제출이 없습니다

문제

알고리즘 파괴자 대회에서 쓰는 소프트웨어는 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), (x−a,y−b)(x - a, y - b), (x+c,y+d)(x + c, y + d), (x−c,y−d)(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가 주어진다 (−100000≤a,b,c,d≤100000-100000 \le a, b, c, d \le 100000). (a,b)(a, b)와 (c,d)(c, d)는 각각 (0,0)(0, 0)이 아니다.

출력

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

예제1

  1. 예제 1

    입력
    13 4 17 5
    
    예상 출력
    2