AT_arc209_d.[ARC209D] A_A_i
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个长度为 N 的序列 A=(A1,A2,…,AN),每个元素要么是 1 到 N 之间的整数(包含 1 和 N),要么是 −1。
Snuke 决定用这个序列 A 创建一个新序列。
首先,将序列 A 中所有的 −1 替换成 1 到 N 之间的某个整数(包含 1 和 N)。
接着,根据如下公式创建长度为 N 的序列 B=(B1,B2,…,BN):
- Bi=AAi
请你找出字典序最小的可能的序列 B。
有 T 组测试数据。请你分别求解每组数据。
什么是序列的字典序?如果存在整数 1≤i≤N,使得满足以下两个条件,则序列 C=(C1,C2,…,CN) 字典序小于 序列 D=(D1,D2,…,DN):
- (C1,C2,…,Ci−1)=(D1,D2,…,Di−1)
- Ci 在数值上小于 Di。
输入格式
输入按如下格式给出:
T
case_1
case_2
⋮
case_T
每组测试数据按如下格式给出:
N A_1 A_2 … A_N
输出格式
对于每组测试数据,输出字典序最小的可能序列 B,每组测试数据占一行。
输入输出样例
输入#1
3 4 4 -1 -1 3 5 5 4 5 3 1 7 -1 6 5 -1 7 -1 6
输出#1
3 1 4 1 1 3 1 5 5 1 1 7 1 6 1 1
说明/提示
样例解释 1
在第一个测试用例中,Snuke 替换之前的序列 A 为 (4,−1,−1,3)。
假设他将其替换为 A=(4,3,1,3)。
则 B=(A4,A3,A1,A3)=(3,1,4,1)。
无法得到字典序更小的序列 B 了。
约束条件
- 1≤T≤105
- 1≤N≤5×105
- 1≤Ai≤N 或 Ai=−1
- 所有测试数据中 N 的总和不超过 5×105
- 所有输入值均为整数。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?