309039: CF1615G. Maximum Adjacent Pairs
Memory Limit:512 MB
Time Limit:3 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
Maximum Adjacent Pairs
题意翻译
给定一个数列 $a$,你需要将所有 $a_i=0$ 的位置填上一个 $1\sim n$ 的正整数,使得数列的「值」最大。 数列的值定义为满足以下条件的 $k$ 的个数: - 存在 $i\in\Z[1,n-1]$,使得 $a_{i}=a_{i+1}=k$。 输出值最大的序列,若有多解,输出任意一个。 $0\le a\le \min(n,600)$;$0<n\le 3\times 10^5$。题目描述
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 \in [1, n - 1] $ such that $ a_i = a_{i + 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 \le n \le 3 \cdot 10^5 $ ) — the number of elements in the array. The second line contains $ n $ integers $ a_1, a_2, \dots, a_n $ ( $ 0 \le a_i \le \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