AT_arc165_f.[ARC165F] Make Adjacent

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

我们称长度为 2n2n 的整数序列 X=(X1,X2,…,X2n)X=(X_1,X_2,\dots,X_{2n}),如果对于所有 i=1,2,…,ni=1,2,\dots,n 都满足 X2i−1=X2iX_{2i-1}=X_{2i},则称 XX 为良好数列。

给定一个长度为 2N2N 的整数序列 A=(A1,A2,…,A2N)A=(A_1,A_2,\dots,A_{2N})。该序列包含每个整数 i=1,2,…,Ni=1,2,\dots,N 恰好各 22 个。

你可以对 AA 进行若干次“交换相邻的两个元素”的操作(可以为 00 次),希望将 AA 变为良好数列。

设将 AA 变为良好数列所需的最小操作次数为 KK。请你输出对 AA 进行 KK 次操作后,能够得到的良好数列中字典序最小的一个,元素之间用空格分隔。

数列的字典序定义如下:设 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|}),则 SS 的字典序小于 TT 当且仅当满足以下两条之一。这里 ∣S∣,∣T∣|S|,|T| 分别表示 S,TS,T 的长度。

  1. ∣S∣<∣T∣|S|<|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\leq i\leq \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 A1A_1 A2A_2 …\dots A2NA_{2N}

输出格式

请输出对 AA 进行 KK 次操作后能够得到的良好数列中字典序最小的一个,元素之间用空格分隔。

输入输出样例

  • 输入#1

    3
    3 2 1 2 3 1

    输出#1

    2 2 3 3 1 1
  • 输入#2

    3
    1 1 2 2 3 3

    输出#2

    1 1 2 2 3 3
  • 输入#3

    15
    15 12 11 10 5 11 13 2 6 14 3 6 5 14 10 15 1 2 13 9 7 4 9 1 3 8 12 4 8 7

    输出#3

    11 11 5 5 6 6 10 10 14 14 15 15 2 2 12 12 13 13 1 1 3 3 9 9 4 4 7 7 8 8

说明/提示

限制条件

  • 1≤N≤2×1051\leq N\leq 2\times 10^5
  • 1≤Ai≤N1\leq A_i\leq N
  • 每个整数 i=1,2,…,Ni=1,2,\dots,N 在 AA 中恰好出现 22 次
  • 输入的所有值均为整数

样例解释 1

例如,(3,2,1,2,3,1)→(3,2,1,3,2,1)→(3,2,3,1,2,1)→(3,3,2,1,2,1)→(3,3,2,2,1,1)(3,2,1,2,3,1)\rightarrow (3,2,1,3,2,1)\rightarrow (3,2,3,1,2,1)\rightarrow (3,3,2,1,2,1)\rightarrow (3,3,2,2,1,1),这样经过 44 次操作可以将 AA 变为良好数列,这是所需的最小操作次数。在 44 次操作下,也可以得到 A=(2,2,3,3,1,1)A=(2,2,3,3,1,1),因此答案为 (2,2,3,3,1,1)(2,2,3,3,1,1)。

由 ChatGPT 4.1 翻译

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

首页