#ABC373G. 无交叉匹配

无交叉匹配

无交叉匹配

题目描述

二维平面上有 2N2N 个点 P1,P2,,PN,Q1,Q2,,QNP_1,P_2,\ldots,P_N, Q_1,Q_2,\ldots,Q_NPiP_i 的坐标为 (Ai,Bi)(A_i, B_i)QiQ_i 的坐标为 (Ci,Di)(C_i, D_i)。 任意三个不同点不在同一条直线上。

判断是否存在一个 (1,2,,N)(1, 2, \ldots, N) 的排列 R=(R1,R2,,RN)R = (R_1, R_2, \ldots, R_N) 满足以下条件。如果存在,请找出一个。

对每个整数 ii(从 11NN),设线段 ii 为连接 PiP_iQRiQ_{R_i} 的线段。则线段 ii 和线段 jj1i<jN1 \leq i \lt j \leq N)永不相交。

输入格式

输入按以下格式从标准输入给出:

NN
A1A_1 B1B_1
A2A_2 B2B_2
\vdots
ANA_N BNB_N
C1C_1 D1D_1
C2C_2 D2D_2
\vdots
CNC_N DND_N

输出格式

如果不存在满足条件的 RR,输出 -1

如果存在,用空格分隔输出 R1,R2,,RNR_1, R_2, \ldots, R_N。如果存在多个解,输出其中任意一个即可。

样例

3
0 0
2 4
4 2
0 2
2 0
4 4
2 1 3

R=(2,1,3)R = (2, 1, 3),三条线段互不相交。另外,R=(1,2,3)R = (1, 2, 3)(1,3,2)(1, 3, 2)(2,3,1)(2, 3, 1)(3,1,2)(3, 1, 2) 中的任意一个也都是合法答案。

8
59 85
60 57
72 12
3 27
16 58
41 94
77 64
97 20
32 37
7 2
57 94
35 70
38 60
97 100
5 76
38 8
3 5 8 2 7 4 6 1

数据范围

  • 1N3001 \le N \le 300
  • 0Ai,Bi,Ci,Di50000 \le A_i, B_i, C_i, D_i \le 50001iN1 \le i \le N
  • (Ai,Bi)(Aj,Bj)(A_i, B_i) \neq (A_j, B_j)1i<jN1 \le i \lt j \le N
  • (Ci,Di)(Cj,Dj)(C_i, D_i) \neq (C_j, D_j)1i<jN1 \le i \lt j \le N
  • (Ai,Bi)(Cj,Dj)(A_i, B_i) \neq (C_j, D_j)1i,jN1 \le i, j \le N
  • 任意三个不同点不在同一条直线上
  • 输入均为整数

提示

答案不唯一,输出任意合法解即可。

难度 省选/NOI-
通过率
尝试 0
已通过 0
ID
3437
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签