配点 : 300点
問題文
縦 H 行、横 W 列のグリッドがあります。上から i 行目、左から j 列目のマスを (i,j) とします。
またこのグリッドでは端を越えて移動すると反対側に出てくる、つまりグリッドは端から端まで循環します。
スタート地点の座標は (sx,sy) であり、ゴール地点の座標は (gx,gy) です。
くしらくんは以下の2種類の操作を行ってスタート地点からゴール地点へたどり付きたいです。
- コストを 2払い、隣へ1マス移動する。
厳密には、今いる座標を (i,j) として、コストを 2 払って ((i−1)modH,j),(i,(j+1)modW),((i+1)modH,j),(i,(j−1)modW) のいずれかに移動する。
- コストを3払い、斜めへ1マス移動する。
厳密には今いる座標を (i,j) として、コストを 3 払って ((i−1)modH,(j+1)modW),((i+1)modH,(j+1)modW),((i+1)modH,(j−1)modW),((i−1)modH,(j−1)modW) のいずれかに移動する。
くしらくんが目標を達成するために必要なコストの最小値を答えてください。
T 個のテストケースが与えられるのでそれぞれに答えてください。
※追記(13:34)
厳密に書いた式が間違っています。0-indexであるものにその式を適用してください。
制約
- 1≦T≦104
- 1≦H,W≦1012
- 1≦sx,gx≦H
- 1≦sy,gy≦W
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
各テストケースは以下の形式で与えられる。
出力
T 行出力してください。i 行目には、 casei に対する答えを出力してください。
入出力例1
3
3 6 1 2 3 4
3 3 1 1 2 3
314 159 26 53 98 97
1つめのテストケースでは以下のように移動することで目標を達成することができます。
- コストを 2 払って右へ移動する。
- コストを 3 払って右上へ移動する。
5 よりも小さいコストで目標を達成することが出来ないので 5 を出力します。