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
と出力したとき、かつそのときに限り、あなたが構成した操作列の長さを としてさらに 行出力せよ( は を満たさなければならない)。 行目 には、 回目の操作で選んだ点 の座標をこの順に空白区切りで出力せよ。
题目大意
在坐标系中有一个起始点 和一个矩形 ,每次操作可以选中一个矩形内的整点并把当前点移到与该点对称的位置,问能否在 次操作以内到达目标点
如能请输出Yes
并给出任意一个方案,如不能输出No
给出的所有横纵坐标都是 的非负整数
1 2
7 8
7 9 0 3
Yes
7 0
9 3
7 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
提示
制約
- $ 0\leq\ s\ _\ x,s\ _\ y,t\ _\ x,t\ _\ y\leq2\times10^5 $
- 入力はすべて整数
Sample Explanation 1
例えば、次のようにして から へ移動することができます。 - 点 を選ぶ。高橋くんは に移動する。 - 点 を選ぶ。高橋くんは に移動する。 - 点 を選ぶ。高橋くんは に移動する。 - 点 を選ぶ。高橋くんは に移動する。 ![](https://img.atcoder.jp/abc289/d6d2cc458bbc92e975ba267856f673cf.png) 条件を満たす操作の列であれば何を出力しても正答となるので、例えば Yes 7 3 9 0 7 2 9 1 8 1
と出力しても正答となります。 ![](https://img.atcoder.jp/abc289/3faa56b1d245b87bd4cc36083495383c.png)
Sample Explanation 2
どのように操作しても点 に移動することはできません。 ![](https://img.atcoder.jp/abc289/eb363d09e74f89c5474a4fc7529308bc.png)
Sample Explanation 3
高橋くんがはじめから目的地にいる場合もあります。