找出猫猫虫
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

为了成为猫猫虫大师,HBUT的Youster踏上了融合猫猫虫的道路,但千人千面,Youster想看看你的融合方法。
现有 N 对整数 (L_1, R_1), (L_2, R_2), \ldots, (L_N, R_N)
请判断是否存在满足以下条件的N个整数X = (X_1, X_2, \ldots, X_N) 的序列,如果存在,请输出一个这样的序列。
  • L_i \leq X_i \leq R_i对于每个i = 1, 2, \ldots, N.(代表每头猫猫虫的实力变化范围)
  • \displaystyle \sum_{i=1}^N X_i = 0.(融合的条件就是所有猫猫虫的实力之和为0)

输入描述:

第一行输入一个 N(1 \leq N \leq 2 \times 10^5),表示整数对的数量;
接下来 N行,第 i行输入两个整数L_i R_i(-10^9 \leq L_i \leq R_i \leq 10^9)

输出描述:

如果没有解,则输出No。否则,输出一个满足条件的整数序列X,格式如下:
Yes
X_1 X_2 \ldots X_N
示例1

输入

复制
3
3 5
-4 1
-2 3

输出

复制
Yes
4 -3 -1

说明

序列 X = (4, -3, -1)满足所有条件。 其他有效序列包括(3, -3, 0)(5, -4, -1)
示例2

输入

复制
3
1 2
1 2
1 2

输出

复制
No

说明

没有序列X满足条件。
示例3

输入

复制
6
-87 12
-60 -54
2 38
-76 6
87 96
-17 38

输出

复制
Yes
-66 -57 31 -6 89 9