F - Push and Carry Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 525

問題文

座標平面上に高橋君と荷物があります。

高橋君は現在 (X_A,Y_A) におり、荷物は (X_B,Y_B) にあります。 高橋君は荷物を (X_C,Y_C) まで運びたいです。

高橋君は (x,y) にいるとき、1 回の行動で次のいずれかの動きをすることができます。

  • (x+1,y) に移動する。移動前の時点で荷物が (x+1,y) にあった時、荷物を (x+2,y) に移動させる。
  • (x-1,y) に移動する。移動前の時点で荷物が (x-1,y) にあった時、荷物を (x-2,y) に移動させる。
  • (x,y+1) に移動する。移動前の時点で荷物が (x,y+1) にあった時、荷物を (x,y+2) に移動させる。
  • (x,y-1) に移動する。移動前の時点で荷物が (x,y-1) にあった時、荷物を (x,y-2) に移動させる。

荷物を (X_C,Y_C) に移動させるまでに必要な最小の行動回数を求めてください。

制約

  • -10^{17}\leq X_A,Y_A,X_B,Y_B,X_C,Y_C\leq 10^{17}
  • (X_A,Y_A)\neq (X_B,Y_B)
  • (X_B,Y_B)\neq (X_C,Y_C)
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

X_A Y_A X_B Y_B X_C Y_C

出力

荷物を (X_C,Y_C) に移動させるまでに必要な最小の行動回数を出力せよ。


入力例 1

1 2 3 3 0 5

出力例 1

9

高橋君は次のように行動することで 9 回で荷物を (0,5) に運ぶことができます。

  • (2,2) へ移動する。
  • (3,2) へ移動する。
  • (3,3) へ移動する。荷物は (3,4) に移動する。
  • (3,4) へ移動する。荷物は (3,5) に移動する。
  • (4,4) へ移動する。
  • (4,5) へ移動する。
  • (3,5) へ移動する。荷物は (2,5) に移動する。
  • (2,5) へ移動する。荷物は (1,5) に移動する。
  • (1,5) へ移動する。荷物は (0,5) に移動する。

8 回以下で荷物を (0,5) に運ぶことができないので、9 を出力します。


入力例 2

0 0 1 0 -1 0

出力例 2

6

入力例 3

-100000000000000000 -100000000000000000 100000000000000000 100000000000000000 -100000000000000000 -100000000000000000

出力例 3

800000000000000003

Score : 525 points

Problem Statement

Takahashi and a cargo are on a coordinate plane.

Takahashi is currently at (X_A,Y_A), and the cargo is at (X_B,Y_B). He wants to move the cargo to (X_C,Y_C).

When he is at (x,y), he can make one of the following moves in a single action.

  • Move to (x+1,y). If the cargo is at (x+1,y) before the move, move it to (x+2,y).
  • Move to (x-1,y). If the cargo is at (x-1,y) before the move, move it to (x-2,y).
  • Move to (x,y+1). If the cargo is at (x,y+1) before the move, move it to (x,y+2).
  • Move to (x,y-1). If the cargo is at (x,y-1) before the move, move it to (x,y-2).

Find the minimum number of actions required to move the cargo to (X_C,Y_C).

Constraints

  • -10^{17}\leq X_A,Y_A,X_B,Y_B,X_C,Y_C\leq 10^{17}
  • (X_A,Y_A)\neq (X_B,Y_B)
  • (X_B,Y_B)\neq (X_C,Y_C)
  • All input values are integers.

Input

The input is given from Standard Input in the following format:

X_A Y_A X_B Y_B X_C Y_C

Output

Print the minimum number of actions required to move the cargo to (X_C,Y_C).


Sample Input 1

1 2 3 3 0 5

Sample Output 1

9

Takahashi can move the cargo to (0,5) in nine actions as follows.

  • Move to (2,2).
  • Move to (3,2).
  • Move to (3,3). The cargo moves to (3,4).
  • Move to (3,4). The cargo moves to (3,5).
  • Move to (4,4).
  • Move to (4,5).
  • Move to (3,5). The cargo moves to (2,5).
  • Move to (2,5). The cargo moves to (1,5).
  • Move to (1,5). The cargo moves to (0,5).

It is impossible to move the cargo to (0,5) in eight or fewer actions, so you should print 9.


Sample Input 2

0 0 1 0 -1 0

Sample Output 2

6

Sample Input 3

-100000000000000000 -100000000000000000 100000000000000000 100000000000000000 -100000000000000000 -100000000000000000

Sample Output 3

800000000000000003