atcoder#ABC289F. [ABC289F] Teleporter Takahashi
[ABC289F] 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 2
7 8
7 9 0 3
Yes
7 0
9 3
7 1
8 1
例えば、次のようにして から へ移動することができます。
- 点 を選ぶ。高橋くんは に移動する。
- 点 を選ぶ。高橋くんは に移動する。
- 点 を選ぶ。高橋くんは に移動する。
- 点 を選ぶ。高橋くんは に移動する。
条件を満たす操作の列であれば何を出力しても正答となるので、例えば
Yes
7 3
9 0
7 2
9 1
8 1
と出力しても正答となります。
0 0
8 4
5 5 0 0
No
どのように操作しても点 に移動することはできません。
1 4
1 4
100 200 300 400
Yes
高橋くんがはじめから目的地にいる場合もあります。
22 2
16 7
14 30 11 14
No