AT_abc289_f [ABC289F] Teleporter Takahashi
Description
[problemUrl]: https://atcoder.jp/contests/abc289/tasks/abc289_f
$ xy $ 平面上に高橋くんがいます。 はじめ、高橋くんは点 $ (s\ _\ x,s\ _\ y) $ にいます。 高橋くんは、点 $ (t\ _\ x,t\ _\ y) $ に移動したいです。
$ xy $ 平面上に、長方形 $ 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 $ があります。 次の操作を考えます。
- 長方形 $ R $ に含まれる格子点 $ (x,y) $ をひとつ選ぶ。 点 $ (x,y) $ を中心に高橋くんはいまいる位置と対称な位置に瞬間移動する。
上の操作を $ 0 $ 回以上 $ 10^6 $ 回以下繰り返して、高橋くんが点 $ (t\ _\ x,t\ _\ y) $ にいるようにできるか判定してください。 できる場合、高橋くんが点 $ (t\ _\ x,t\ _\ y) $ に移動することができるような操作の列を $ 1 $ つ構成してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ s\ _\ x $ $ s\ _\ y $ $ t\ _\ x $ $ t\ _\ y $ $ a $ $ b $ $ c $ $ d $
Output Format
$ 1 $ 行目には、操作を $ 0 $ 回以上 $ 10^6 $ 回以下繰り返して高橋くんが点 $ (t\ _\ x,t\ _\ y) $ に到達できるなら `Yes` 、そうでなければ `No` と出力せよ。 $ 1 $ 行目で `Yes` と出力したとき、かつそのときに限り、あなたが構成した操作列の長さを $ d $ としてさらに $ d $ 行出力せよ($ d $ は $ 0\leq\ d\leq10^6 $ を満たさなければならない)。 $ 1+i $ 行目 $ (1\leq\ i\leq\ d) $ には、$ i $ 回目の操作で選んだ点 $ (x,\ y)\in\ R $ の座標をこの順に空白区切りで出力せよ。
Explanation/Hint
### 制約
- $ 0\leq\ s\ _\ x,s\ _\ y,t\ _\ x,t\ _\ y\leq2\times10^5 $
- $ 0\leq\ a\leq\ b\leq2\times10^5 $
- $ 0\leq\ c\leq\ d\leq2\times10^5 $
- 入力はすべて整数
### Sample Explanation 1
例えば、次のようにして $ (1,2) $ から $ (7,8) $ へ移動することができます。 - 点 $ (7,0) $ を選ぶ。高橋くんは $ (13,-2) $ に移動する。 - 点 $ (9,3) $ を選ぶ。高橋くんは $ (5,8) $ に移動する。 - 点 $ (7,1) $ を選ぶ。高橋くんは $ (9,-6) $ に移動する。 - 点 $ (8,1) $ を選ぶ。高橋くんは $ (7,8) $ に移動する。 !\[\](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
どのように操作しても点 $ (8,4) $ に移動することはできません。 !\[\](https://img.atcoder.jp/abc289/eb363d09e74f89c5474a4fc7529308bc.png)
### Sample Explanation 3
高橋くんがはじめから目的地にいる場合もあります。