AT_arc134_d.[ARC134D] Concatenate Subsequences

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

给定一个长度为 2N2N 的数列 aa。

すぬけ君打算用 (1,2,…,N)(1,2,\ldots,N) 的非空(不一定连续)子序列 x=(x1,x2,…,xk)x=(x_1,x_2,\ldots,x_k),来构造一个新的数列。构造方式为:取 aa 的第 x1x_1、x2x_2、…\ldots、xkx_k 项,以及第 x1+Nx_1+N、…\ldots、xk+Nx_k+N 项,按顺序连接,得到新的数列。

请你求出すぬけ君可以构造出的所有数列中,字典序最小的那个。

什么是数列的字典序?对于两个不同的数列 SS 和 TT,判断大小的算法如下:

记 SS 的第 ii 项为 SiS_i。若 SS 的字典序小于 TT,记作 S<TS < T,大于则记作 S>TS > T。

  1. 取 SS 和 TT 中较短的那个数列的长度为 LL。依次比较 i=1,2,…,Li=1,2,\ldots,L 时 SiS_i 和 TiT_i 是否相等。
  2. 如果存在 Si≠TiS_i \neq T_i,取最小的这样的 ii 为 jj,比较 SjS_j 和 TjT_j,若 SjS_j 比 TjT_j 小,则 S<TS < T,大则 S>TS > T,算法结束。
  3. 如果所有 Si=TiS_i = T_i,则比较数列长度,短的字典序小,长的字典序大,算法结束。

输入格式

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

NN a1a_1 a2a_2 ⋯\cdots a2Na_{2N}

输出格式

请输出すぬけ君可以构造出的所有数列中,字典序最小的那个。

输入输出样例

  • 输入#1

    3
    2 1 3 1 2 2

    输出#1

    1 2
  • 输入#2

    10
    38 38 80 62 62 67 38 78 74 52 53 77 59 83 74 63 80 61 68 55

    输出#2

    38 38 38 52 53 77 80 55
  • 输入#3

    12
    52 73 49 63 55 74 35 68 22 22 74 50 71 60 52 62 65 54 70 59 65 54 60 52

    输出#3

    22 22 50 65 54 52

说明/提示

数据范围

  • 所有输入均为整数。
  • 1≤N≤1051 \leq N \leq 10^5
  • 1≤ai≤1091 \leq a_i \leq 10^9

样例解释 1

  • 取 x=(2)x = (2) 时,构造出的数列为 (1,2)(1,2),这是字典序最小的。

由 ChatGPT 4.1 翻译

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

首页