atcoder#ABC135E. [ABC135E] Golf

[ABC135E] Golf

配点: 500500

問題文

無限に広がる二次元格子があります。ジャンボ高橋君はこの上でゴルフをすることにしました。

ボールははじめ原点 (0,0)(0, 0) にあり、ゴールは格子点(座標がいずれも整数である点) (X,Y)(X, Y) です。ジャンボ高橋君は 11 打ごとに、次の操作を行えます。

  • その時点でボールがある点とのマンハッタン距離が KK であるような格子点を 11 つ選び、その点にボールを飛ばす。

ゴールと同じ座標にボールが来た時点でクリアとなり、それまでの打数がスコアとなります。ジャンボ高橋君はできるだけ少ないスコアでクリアしたいと思っています。

クリアが可能かどうか判定し、可能ならばスコアが最小となるボールの動かし方を 11 つ求めてください。

マンハッタン距離の説明

22 つの座標 (x1,y1),(x2,y2)(x_1, y_1), (x_2, y_2) に対するマンハッタン距離は、x1x2+y1y2|x_1-x_2|+|y_1-y_2| と定義されます。

制約

  • 入力はすべて整数
  • 1K1091 \leq K \leq 10^9
  • 105X,Y105-10^5 \leq X, Y \leq 10^5
  • (X,Y)(0,0)(X, Y) \neq (0, 0)

入力

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

KK

XX YY

出力

クリアが不可能な場合は -1 と出力してください。

クリアが可能な場合、スコアが最小となるボールの動かし方を次のように出力してください。

ss

x1x_1 y1y_1

x2x_2 y2y_2

..

..

..

xsx_s ysy_s

ここで、ss はスコアの最小値です。また、(xi,yi)(x_i, y_i)ii 打目にボールを飛ばす先の座標とします。

11
-1 2
3
7 4
2 10
-1 2
  • (0,0),(7,4)(0, 0), (7, 4) のマンハッタン距離は 07+04=11|0-7|+|0-4|=11
  • (7,4),(2,10)(7, 4), (2, 10) のマンハッタン距離は 72+410=11|7-2|+|4-10|=11
  • (2,10),(1,2)(2, 10), (-1, 2) のマンハッタン距離は 2(1)+102=11|2-(-1)|+|10-2|=11

以上より、このボールの動かし方は正しいです。

また、33 打より少なくクリアする方法は存在しません。

4600
52 149
-1
4
9 9
5
1 3
4 2
4 6
6 8
9 9