CF1539F.Strange Array
省选/NOI-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Vasya has an array of n integers a1,a2,…,an. Vasya thinks that all numbers in his array are strange for some reason. To calculate how strange the i-th number is, Vasya created the following algorithm.
He chooses a subsegment al,al+1,…,ar, such that 1≤l≤i≤r≤n, sort its elements in increasing order in his head (he can arrange equal elements arbitrary). After that he finds the center of the segment. The center of a segment is the element at position (l+r)/2, if the length of the segment is odd, and at position (l+r+1)/2 otherwise. Now Vasya finds the element that was at position i before the sorting, and calculates the distance between its current position and the center of the subsegment (the distance between the elements with indices j and k is ∣j−k∣).
The strangeness of the number at position i is the maximum distance among all suitable choices of l and r.
Vasya wants to calculate the strangeness of each number in his array. Help him to do it.
瓦西里有一个包含 n 个整数的数组 a1,a2,…,an。出于某种原因,瓦西里认为他数组中的所有数都很“奇怪”。为了量化第 i 个数的“奇怪程度”,瓦西里设计了如下算法:
他选择一个子区间 al,al+1,…,ar,满足 1≤l≤i≤r≤n,并在脑海中将该子区间的元素按升序排序(相等元素的相对顺序可任意安排)。接着,他找出该子区间的“中心”:若子区间长度为奇数,则中心为位置 (l+r)/2 上的元素;若长度为偶数,则中心为位置 (l+r+1)/2 上的元素。随后,瓦西里找出原数组中位于位置 i 的那个元素(即排序前处于 ai 的那个数)在排序后的新位置,并计算该新位置与子区间中心位置之间的距离(位置 j 与位置 k 之间的距离定义为 ∣j−k∣)。
第 i 个数的“奇怪程度”即为在所有满足 1≤l≤i≤r≤n 的子区间 [l,r] 中,上述距离所能取到的最大值。
瓦西里希望计算出他数组中每个数的“奇怪程度”。请帮助他完成这一任务。
输入格式
The first line contains a single integer n (1≤n≤200000) — the size of the array.
The second line contains n integers a1,a2,…,an (1≤ai≤n) — Vasya's array.
第一行包含一个整数 n(1≤n≤200000)—— 数组的大小。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤n)—— Vasya 的数组。
输出格式
Print a single line with n numbers. The i-th of them must be equal to the strangeness of the i-th element of the array.
输出一行,包含 n 个数字。其中第 i 个数字必须等于数组中第 i 个元素的“奇异度”。
输入输出样例
输入#1
5 5 4 3 2 1
输出#1
2 1 1 2 2
输入#2
7 3 6 5 6 2 1 3
输出#2
2 3 1 3 2 3 1
说明/提示
In the first example:
- For the first position we choose the segment from 1 to 5. After sorting, it looks like [1,2,3,4,5], the center is 3. The distance from the center to 5 is 2.
- For the second position we choose the segment from 2 to 4.
- For the third position we choose the segment from 3 to 5.
- For the fourth position we choose the segment from 1 to 4. After sorting, it looks like [2,3,4,5], the center is 4. The distance from the center to 2 is 2.
- For the fifth position we choose the segment from 1 to 5.
在第一个例子中:
- 对于第一个位置,我们选择从 1 到 5 的区间。排序后为 [1,2,3,4,5],其中心为 3。中心到 5 的距离为 2。
- 对于第二个位置,我们选择从 2 到 4 的区间。
- 对于第三个位置,我们选择从 3 到 5 的区间。
- 对于第四个位置,我们选择从 1 到 4 的区间。排序后为 [2,3,4,5],其中心为 4。中心到 2 的距离为 2。
- 对于第五个位置,我们选择从 1 到 5 的区间。
输入解题思路,AI测评打分。不知道怎么写?