AT_abc437_e.[ABC437E] Sort Arrays

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

有 N+1N + 1 个序列 A0,A1,…,ANA_0,A_1,\ldots,A_N。定义 AiA_i 如下:

  • A0A_0 是空序列。
  • Ai(1≤i≤N)A_i (1 \le i \le N) 是在序列 Axi(0≤xi<i)A_{x_i} (0 \le x_i < i) 末尾追加一个整数 yiy_i 得到的序列。

请找出 (1,2,…,N)(1,2,\ldots,N) 的一个排列 P=(P1,P2,…,PN)P = (P_1,P_2,\ldots,P_N),满足以下条件:

  • 对于任意 i=1,2,…,N−1i = 1,2,\ldots,N - 1,满足以下之一:
    • APiA_{P_i} 在字典序上小于 APi+1A_{P_{i+1}}。
    • APi=APi+1A_{P_i} = A_{P_{i+1}} 且 Pi<Pi+1P_i \lt P_{i+1}。

:::info[什么是序列的字典序?]
序列 S=(S1,S2,…,S∣S∣)S = (S_1,S_2,\ldots,S_{|S|}) 在字典序上小于序列 T=(T1,T2,…,T∣T∣)T = (T_1,T_2,\ldots,T_{|T|}),当且仅当满足以下两条之一。这里 ∣S∣|S| 和 ∣T∣|T| 分别是 SS 和 TT 的长度。

  1. ∣S∣<∣T∣|S| \lt |T| 且 (S1,S2,…,S∣S∣)=(T1,T2,…,T∣S∣)(S_1,S_2,\ldots,S_{|S|}) = (T_1,T_2,\ldots,T_{|S|})。
  2. 存在一个整数 1≤i≤min⁡{∣S∣,∣T∣}1 \le i \le \min \lbrace |S|, |T| \rbrace,满足:
    • (S1,S2,…,Si−1)=(T1,T2,…,Ti−1)(S_1,S_2,\ldots,S_{i-1}) = (T_1,T_2,\ldots,T_{i-1})。
    • SiS_i 数值上小于 TiT_i。
      :::

输入格式

输入从标准输入读取,格式如下:

NN x1x_1 y1y_1

x2x_2 y2y_2

⋮\vdots

xNx_N yNy_N

输出格式

输出 P1,P2,…,PNP_1, P_2, \ldots, P_N,一行内用空格隔开。

输入输出样例

  • 输入#1

    4
    0 2
    0 1
    2 2
    0 1

    输出#1

    2 4 3 1
  • 输入#2

    5
    0 1
    0 1
    0 1
    0 1
    0 1

    输出#2

    1 2 3 4 5
  • 输入#3

    10
    0 305186313
    1 915059758
    0 105282054
    1 696409999
    3 185928366
    3 573289179
    6 254538849
    3 105282054
    5 696409999
    8 168629803

    输出#3

    3 8 10 5 9 6 7 1 4 2

说明/提示

样例解释 1

A1=(2),A2=(1),A3=(1,2),A4=(1)A_1 = (2), A_2 = (1), A_3 = (1, 2), A_4 = (1),所以 P=(2,4,3,1)P=(2,4,3,1)。

样例解释 2

A1=A2=A3=A4=A5=(1)A_1 = A_2 = A_3 = A_4 = A_5 = (1)。

约束条件

  • 1≤N≤3×1051\leq N\leq 3\times 10^5;
  • 0≤xi<i0\leq x_i\lt i;
  • 1≤yi≤1091\leq y_i\leq 10^9;
  • 所有输入均为整数。

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

首页