#aBC373G. [ABC373G] No Cross Matching

[ABC373G] No Cross Matching

AT_abc373_g [ABC373G] No Cross Matching

题目描述

在二维平面上有 2N2N 个点,分别为 P1,P2,,PNP_1,P_2,\ldots,P_NQ1,Q2,,QNQ_1,Q_2,\ldots,Q_N。点 PiP_i 的坐标为 (Ai,Bi)(A_i,B_i),点 QiQ_i 的坐标为 (Ci,Di)(C_i,D_i)。不存在同一直线上的三个不同点。

请判断是否存在一个数列 R=(R1,R2,,RN)R=(R_1,R_2,\ldots,R_N),它是 11NN 的一个排列,并且满足以下条件:

  • 对于所有 11NN 的整数 ii,将 PiP_iQRiQ_{R_i} 作为端点连成线段,要求任意两条线段 iijj1i<jN1\leq i<j\leq N)都不相交。

如果存在这样的 RR,请给出其中一个;如果不存在,输出 1-1

输入格式

输入通过标准输入给出,格式如下:

NN
A1 B1A_1\ B_1
A2 B2A_2\ B_2
\vdots
AN BNA_N\ B_N
C1 D1C_1\ D_1
C2 D2C_2\ D_2
\vdots
CN DNC_N\ D_N

输出格式

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

如果存在,输出 R1,R2,,RNR_1,R_2,\ldots,R_N,用空格分隔。若有多个答案,输出任意一个均可。

输入输出样例 #1

输入 #1

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

输出 #1

2 1 3

输入输出样例 #2

输入 #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

输出 #2

3 5 8 2 7 4 6 1

说明/提示

数据范围

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

样例解释 1

点的分布如下图所示。

R=(2,1,3)R=(2,1,3) 时,三条线段互不相交。实际上,RR(1,2,3)(1,2,3)(1,3,2)(1,3,2)(2,3,1)(2,3,1)(3,1,2)(3,1,2) 也都是正确答案。

由 ChatGPT 4.1 翻译