CF1539F.Strange Array

省选/NOI-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

Vasya has an array of nn integers a1,a2,…,ana_1, a_2, \ldots, a_n. Vasya thinks that all numbers in his array are strange for some reason. To calculate how strange the ii-th number is, Vasya created the following algorithm.

He chooses a subsegment al,al+1,…,ara_l, a_{l+1}, \ldots, a_r, such that 1≤l≤i≤r≤n1 \le l \le i \le r \le 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(l + r) / 2, if the length of the segment is odd, and at position (l+r+1)/2(l + r + 1) / 2 otherwise. Now Vasya finds the element that was at position ii before the sorting, and calculates the distance between its current position and the center of the subsegment (the distance between the elements with indices jj and kk is ∣j−k∣|j - k|).

The strangeness of the number at position ii is the maximum distance among all suitable choices of ll and rr.

Vasya wants to calculate the strangeness of each number in his array. Help him to do it.

瓦西里有一个包含 nn 个整数的数组 a1,a2,…,ana_1, a_2, \ldots, a_n。出于某种原因,瓦西里认为他数组中的所有数都很“奇怪”。为了量化第 ii 个数的“奇怪程度”,瓦西里设计了如下算法:

他选择一个子区间 al,al+1,…,ara_l, a_{l+1}, \ldots, a_r,满足 1≤l≤i≤r≤n1 \le l \le i \le r \le n,并在脑海中将该子区间的元素按升序排序(相等元素的相对顺序可任意安排)。接着,他找出该子区间的“中心”:若子区间长度为奇数,则中心为位置 (l+r)/2(l + r) / 2 上的元素;若长度为偶数,则中心为位置 (l+r+1)/2(l + r + 1) / 2 上的元素。随后,瓦西里找出原数组中位于位置 ii 的那个元素(即排序前处于 aia_i 的那个数)在排序后的新位置,并计算该新位置与子区间中心位置之间的距离(位置 jj 与位置 kk 之间的距离定义为 ∣j−k∣|j - k|)。

第 ii 个数的“奇怪程度”即为在所有满足 1≤l≤i≤r≤n1 \le l \le i \le r \le n 的子区间 [l,r][l, r] 中,上述距离所能取到的最大值。

瓦西里希望计算出他数组中每个数的“奇怪程度”。请帮助他完成这一任务。

输入格式

The first line contains a single integer nn (1≤n≤200 0001 \le n \le 200\,000) — the size of the array.

The second line contains nn integers a1,a2,…,ana_1, a_2, \ldots, a_n (1≤ai≤n1 \le a_i \le n) — Vasya's array.

第一行包含一个整数 nn(1≤n≤200 0001 \le n \le 200\,000)—— 数组的大小。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤n1 \le a_i \le n)—— Vasya 的数组。

输出格式

Print a single line with nn numbers. The ii-th of them must be equal to the strangeness of the ii-th element of the array.

输出一行,包含 nn 个数字。其中第 ii 个数字必须等于数组中第 ii 个元素的“奇异度”。

输入输出样例

  • 输入#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:

  1. For the first position we choose the segment from 11 to 55. After sorting, it looks like [1,2,3,4,5][1, 2, 3, 4, 5], the center is 33. The distance from the center to 55 is 22.
  2. For the second position we choose the segment from 22 to 44.
  3. For the third position we choose the segment from 33 to 55.
  4. For the fourth position we choose the segment from 11 to 44. After sorting, it looks like [2,3,4,5][2, 3, 4, 5], the center is 44. The distance from the center to 22 is 22.
  5. For the fifth position we choose the segment from 11 to 55.

在第一个例子中:

  1. 对于第一个位置,我们选择从 11 到 55 的区间。排序后为 [1,2,3,4,5][1, 2, 3, 4, 5],其中心为 33。中心到 55 的距离为 22。
  2. 对于第二个位置,我们选择从 22 到 44 的区间。
  3. 对于第三个位置,我们选择从 33 到 55 的区间。
  4. 对于第四个位置,我们选择从 11 到 44 的区间。排序后为 [2,3,4,5][2, 3, 4, 5],其中心为 44。中心到 22 的距离为 22。
  5. 对于第五个位置,我们选择从 11 到 55 的区间。

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

首页