CF1615G.Maximum Adjacent Pairs
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given an array a consisting of n non-negative integers.
You have to replace each 0 in a with an integer from 1 to n (different elements equal to 0 can be replaced by different integers).
The value of the array you obtain is the number of integers k from 1 to n such that the following condition holds: there exist a pair of adjacent elements equal to k (i. e. there exists some i∈[1,n−1] such that ai=ai+1=k ). If there are multiple such pairs for some integer k , this integer is counted in the value only once.
Your task is to obtain the array with the maximum possible value.
输入格式
The first line contains one integer n ( 2≤n≤3⋅105 ) — the number of elements in the array.
The second line contains n integers a1,a2,…,an ( 0≤ai≤min(n,600) ) — the elements of the array.
输出格式
Print n integers not less than 1 and not greater than n — the array with the maximum possible value you can obtain.
If there are multiple answers, print any of them.
输入输出样例
输入#1
4 1 1 0 2
输出#1
1 1 2 2
输入#2
5 0 0 0 0 0
输出#2
3 1 1 3 3
输入#3
5 1 2 3 4 5
输出#3
1 2 3 4 5
输入#4
6 1 0 0 0 0 1
输出#4
1 2 3 3 1 1
输入#5
3 3 0 2
输出#5
3 2 2
输入#6
5 1 0 2 0 1
输出#6
1 2 2 1 1
输入#7
7 1 0 2 3 1 0 2
输出#7
1 2 2 3 1 1 2