만드는 중입니다

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

갈 곳 없는 길

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

요약
n×m 격자와 시작 칸이 주어질 때, 이동 거리가 1, 1, 2, 2, 3, 3, ...으로 늘어나는 나선 경로가 격자를 벗어나기 전까지 방문한 칸 수를 구합니다.
난이도

보통10점 중 5점

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

문제

콜로복은 이상한 꿈을 꾼다. 꿈에서 콜로복은 크기가 n×mn \times m인 격자 판의 (x,y)(x, y) 칸에 있다.

처음에 콜로복은 XX축의 양의 방향을 보고 있다. 그 뒤 콜로복은 다음 규칙에 따라 판 위를 걷는다.

  • 한 칸 앞으로 간다. 오른쪽으로 90∘90^{\circ} 돈다.
  • 한 칸 앞으로 간다. 오른쪽으로 90∘90^{\circ} 돈다.
  • 두 칸 앞으로 간다. 오른쪽으로 90∘90^{\circ} 돈다.
  • 두 칸 앞으로 간다. 오른쪽으로 90∘90^{\circ} 돈다.
  • 세 칸 앞으로 간다. 오른쪽으로 90∘90^{\circ} 돈다.
  • 세 칸 앞으로 간다. 오른쪽으로 90∘90^{\circ} 돈다.
  • 네 칸 앞으로 간다. 오른쪽으로 90∘90^{\circ} 돈다.
  • 이런 식으로 계속 이어진다.

콜로복이 판 밖으로 나갈 때까지 이동은 계속된다. 나가면 콜로복은 잠에서 깬다.

아침에 콜로복은 꿈을 분석하려 한다. 각 칸을 최대 한 번만 밟았다는 것은 알지만 방문한 칸의 수는 기억하지 못한다. 콜로복이 방문한 칸의 수를 구하는 프로그램을 작성하라.

입력

첫째 줄에 두 자연수 nn, mm (1≤n,m≤1091 \le n, m \le 10^9)이 주어진다. 각각 XX축과 YY축 방향의 판 크기이다. 둘째 줄에 콜로복의 시작 위치를 나타내는 두 자연수 xx, yy (1≤x≤n1 \le x \le n; 1≤y≤m1 \le y \le m)가 주어진다.

출력

콜로복이 꿈에서 방문한 칸의 수를 한 줄에 출력한다.

힌트

그림은 첫 번째 예제를 보여준다.

예제3

  1. 예제 1

    입력
    7 6
    3 4
    
    예상 출력
    36
    
  2. 예제 2

    입력
    2 2
    1 1
    
    예상 출력
    2
    
  3. 예제 3

    입력
    2 2
    1 2
    
    예상 출력
    4