Codeforces596C. Wilbur and Points

C. Wilbur and Points
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

Wilbur is playing with a set of n points on the coordinate plane. All points have non-negative integer coordinates. Moreover, if some point (x,y) belongs to the set, then all points (x',y'), such that 0 ≤ x' ≤ x and0 ≤ y' ≤ y also belong to this set.

Now Wilbur wants to number the points in the set he has, that is assign them distinct integer numbers from1 to n. In order to make the numberingaesthetically pleasing, Wilbur imposes the condition that if some point (x,y) gets number i, then all (x',y') from the set, such thatx' ≥ x and y' ≥ y must be assigned a number not less than i. For example, for a set of four points (0,0), (0, 1), (1, 0) and (1,1), there are two aesthetically pleasing numberings. One is1, 2, 3, 4 and another one is 1, 3, 2, 4.

Wilbur's friend comes along and challenges Wilbur. For any point he defines it'sspecial value as s(x, y) = y - x. Now he gives Wilbur somew1,w2,...,wn, and asks him to find an aesthetically pleasing numbering of the points in the set, such that the point that gets numberi has it's special value equal to wi, that iss(xi, yi) = yi - xi = wi.

Now Wilbur asks you to help him with this challenge.

Input

The first line of the input consists of a single integer n (1 ≤ n ≤ 100 000) — the number of points in the set Wilbur is playing with.

Next follow n lines with points descriptions. Each line contains two integersx and y (0 ≤ x, y ≤ 100 000), that give one point in Wilbur's set. It's guaranteed that all points are distinct. Also, it is guaranteed that if some point (x, y) is present in the input, then all points (x',y'), such that 0 ≤ x' ≤ x and0 ≤ y' ≤ y, are also present in the input.

The last line of the input contains n integers. Thei-th of them is wi ( - 100 000 ≤ wi ≤ 100 000) — the required special value of the point that gets number i in any aesthetically pleasing numbering.

Output

If there exists an aesthetically pleasant numbering of points in the set, such thats(xi, yi) = yi - xi = wi, then print "YES" on the first line of the output. Otherwise, print "NO".

If a solution exists, proceed output with n lines. On thei-th of these lines print the point of the set that gets numberi. If there are multiple solutions, print any of them.

Examples
Input
5
2 0
0 0
1 0
1 1
0 1
0 -1 -2 1 0
Output
YES
0 0
1 0
2 0
0 1
1 1
Input
3
1 0
0 0
2 0
0 1 2
Output
NO
Note

In the first sample, point (2, 0) gets number 3, point (0,0) gets number one, point (1,0) gets number 2, point (1,1) gets number 5 and point (0,1) gets number 4. One can easily check that this numbering is aesthetically pleasing andyi - xi = wi.

In the second sample, the special values of the points in the set are 0,  - 1, and  - 2 while the sequence that the friend gives to Wilbur is0, 1, 2. Therefore, the answer does not exist.

题意:给出N个点,有给出N个价值,点i的价值为yi-xi,每个点给一个标记值1~N,当已知xi,yi的标记值为i,那么当又一个点的x和分别大于等于xi,yi时,这个点的标记值不能小于i。问存不存在排列能凑出给出的N个价值。

思路:老实说我不太清楚题意,WA了两发后根据错的数据修改一下排序过了。我是先把已知的点按他们的价值升序排,若价值相等就按y升序排,若y也相等就按x升序排。

给出的N个价值按升序排,价值相等按序号升序排。排完后一 一 对比,若出现不点的价值不同于对应数据给的价值则no,对比后再遍历一边点,若出现xi,yi均小于xi-1,yi-1的话no,

最后就可以再排序将结果输出了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值