#abc289f. [abc289_f]Teleporter Takahashi
[abc289_f]Teleporter Takahashi
問題文
平面上に高橋くんがいます。 はじめ、高橋くんは点 にいます。 高橋くんは、点 に移動したいです。
平面上に、長方形 $R\\coloneqq\\lbrace(x,y)\\mid a-0.5\\leq x\\leq b+0.5,c-0.5\\leq y\\leq d+0.5\\rbrace$ があります。 次の操作を考えます。
- 長方形 に含まれる格子点 をひとつ選ぶ。 点 を中心に高橋くんはいまいる位置と対称な位置に瞬間移動する。
上の操作を 回以上 回以下繰り返して、高橋くんが点 にいるようにできるか判定してください。 できる場合、高橋くんが点 に移動することができるような操作の列を つ構成してください。
制約
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
出力
行目には、操作を 回以上 回以下繰り返して高橋くんが点 に到達できるなら Yes
、そうでなければ No
と出力せよ。 行目で Yes
と出力したとき、かつそのときに限り、あなたが構成した操作列の長さを としてさらに 行出力せよ( は を満たさなければならない)。 行目 には、 回目の操作で選んだ点 の座標をこの順に空白区切りで出力せよ。
入力例 1
1 2
7 8
7 9 0 3
出力例 1
Yes
7 0
9 3
7 1
8 1
例えば、次のようにして から へ移動することができます。
- 点 を選ぶ。高橋くんは に移動する。
- 点 を選ぶ。高橋くんは に移動する。
- 点 を選ぶ。高橋くんは に移動する。
- 点 を選ぶ。高橋くんは に移動する。
条件を満たす操作の列であれば何を出力しても正答となるので、例えば
Yes
7 3
9 0
7 2
9 1
8 1
と出力しても正答となります。
入力例 2
0 0
8 4
5 5 0 0
出力例 2
No
どのように操作しても点 に移動することはできません。
入力例 3
1 4
1 4
100 200 300 400
出力例 3
Yes
高橋くんがはじめから目的地にいる場合もあります。
入力例 4
22 2
16 7
14 30 11 14
出力例 4
No