AT_abc373_g.[ABC373G] No Cross Matching

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

在二维平面上有 2N2N 个点,分别为 P1,P2,…,PNP_1,P_2,\ldots,P_N 和 Q1,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),它是 11 到 NN 的一个排列,并且满足以下条件:

  • 对于所有 11 到 NN 的整数 ii,将 PiP_i 和 QRiQ_{R_i} 作为端点连成线段,要求任意两条线段 ii 和 jj(1≤i<j≤N1\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

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

    输出#1

    2 1 3
  • 输入#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

说明/提示

数据范围

  • 1≤N≤3001\leq N\leq 300
  • 0≤Ai,Bi,Ci,Di≤50000\leq A_i,B_i,C_i,D_i\leq 5000(1≤i≤N1\leq i\leq N)
  • (Ai,Bi)≠(Aj,Bj)(A_i,B_i)\neq(A_j,B_j)(1≤i<j≤N1\leq i<j\leq N)
  • (Ci,Di)≠(Cj,Dj)(C_i,D_i)\neq(C_j,D_j)(1≤i<j≤N1\leq i<j\leq N)
  • (Ai,Bi)≠(Cj,Dj)(A_i,B_i)\neq(C_j,D_j)(1≤i,j≤N1\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 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页