#P16169. [Ncpc2024]Jungle Game丛林游戏

[Ncpc2024]Jungle Game丛林游戏

题目描述

Denise 正在设计一款雨林主题桌游。游戏目标是让每名玩家组成一个由两个角色构成的小队,并完成各种挑战。

游戏中有 NN 个不同角色,编号为 11NN。角色 ii 有两个属性 pip_isis_i,分别表示解题能力和力量,且满足:

1pi,siN1 \le p_i,s_i \le N。

游戏开始前,每名玩家会选择两个角色 i,ji,j 组成一队。可以选择同一个角色的两份拷贝。该队伍的总解题能力和总力量分别为:

pi+pj,si+sjp_i+p_j,\quad s_i+s_j。

游戏中还有 NN 张挑战卡,编号为 11NN。第 kk 张挑战卡也有两个属性 Pk,SkP_k,S_k。Denise 已经设计好了所有挑战卡的属性。

但是,游戏规则要求:玩家不能组成一个队伍,使得队伍的两个属性同时等于某张挑战卡的两个属性。也就是说,对于任意三元组 i,j,ki,j,k,都不应出现:

pi+pj=Pkextsi+sj=Skp_i+p_j=P_k \quad ext{且}\quad s_i+s_j=S_k。

注意 ii 可以等于 jj

现在剩下的问题是:请为 NN 个角色选出两两不同的属性对

(p1,s1),(p2,s2),,(pN,sN),(p_1,s_1),(p_2,s_2),\ldots,(p_N,s_N),

使得 1pi,siN1 \le p_i,s_i \le N,并且上述禁止情况永远不会发生。

输入格式

第一行包含整数 NN

接下来 NN 行,每行包含两个整数 Pi,SiP_i,S_i,表示第 ii 张挑战卡的两个属性。

输出格式

如果无解,输出:

NO

否则,先输出:

YES

然后输出 NN 行,每行两个整数 pi,sip_i,s_i,表示一个角色的属性。

所有输出的属性对必须两两不同,即不能存在 ieji e jpi=pj,si=sjp_i=p_j, s_i=s_j

数据范围

  • 1N20001 \le N \le 2000
  • 1Pi,Si2N1 \le P_i,S_i \le 2N
  • 输出需满足 1pi,siN1 \le p_i,s_i \le N

样例

输入 #1

5
5 5
5 6
6 5
6 6
8 8

输出 #1

YES
2 2
1 1
1 2
2 1
1 3

输入 #2

1
2 2

输出 #2

NO