#P16112. 「o.OI R-1」青蛙平衡树

「o.OI R-1」青蛙平衡树

题目描述

小 w 有一个二维点集 SS,初始为空。

小 c 依次往 SS 里面加入互不相同的 nn 个点 (xi,yi)(x_i,y_i)

小 c 会在每次操作后告诉小 w,当前 SS 是否中心对称。

现在小 w 想知道任意一个合法的操作序列,如果不存在则报告无解。


称一个点集 SS 中心对称当且仅当:

平面上存在一个点 (a,b)(a,b),使得对于任意 (x,y)S(x,y)\in S,满足 (2ax,2by)S(2a-x,2b-y)\in S

输入格式

第一行一个正整数 nn 表示操作次数。

第二行 nn 个整数 aia_i,其中 ai=1a_i=1 表示加入前 ii 个点后 SS 中心对称,否则表示不中心对称。

输出格式

如果无解,输出 No

否则第一行输出 Yes,接下来 nn 行每行两个整数 (xi,yi)(x_i,y_i)

你需要保证 xi,yi109|x_i|,|y_i|\le10^9,且 (xi,yi)(x_i,y_i) 互不相同。

4
1 1 1 0
Yes
5 8
2 3
-1 -2
-3 -4
9
0 0 0 1 1 1 0 0 0
No
25
1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Yes
1 1
2 3
3 3
1 2
3 2
2 1
1 3
3 1
5 1
7 1
7 2
7 3
7 5
7 4
8 5
8 1
11 3
11 2
11 4
9 5
10 1
11 1
9 1
10 5
11 5

提示

「样例解释」

本题采用捆绑测试。

对于所有测试数据,保证:1n103,ai{0,1}1\le n\le 10^3,a_i\in\{0,1\}

子任务 nn 特殊性质 分值
00 2\le2 55
11 ax=1xna_x=1\Leftrightarrow x\le nx=2k(kN)x=2^k(k\in\N) 1010
22 保证数据随机
33 7575