QOJ.ac

QOJ

Time Limit: 2.0 s Memory Limit: 256 MB Total points: 100

#17221. Farmer John Loves Rotations

統計

Farmer John 有一个包含 $N$ 个整数的数组 $A$ ($1 \leq N \leq 5 \cdot 10^5, 1 \leq A_i \leq N$)。他选定了一个他最喜欢的下标 $j$,并在纸上写下 $A_j$。随后,他可以进行若干次以下操作:

  • 将数组 $A$ 中的所有元素循环左移一位或右移一位。然后,在纸上写下当前的 $A_j$。

令 $S$ 为 $A$ 中出现的所有不同整数组成的集合。Farmer John 想知道,为了使纸上包含 $S$ 中的所有整数,他最少需要进行多少次操作。

由于不确定 FJ 最喜欢的下标是哪一个,请输出对于所有可能的下标 $1 \leq j \leq N$ 的答案。注意,对于每个下标,在进行任何操作之前,$A$ 都会重置为初始状态。

输入格式

第一行包含 $N$。

下一行包含 $A_1, A_2, \ldots, A_N$。

输出格式

输出 $N$ 个以空格分隔的整数,其中第 $i$ 个整数表示以 $j = i$ 作为他最喜欢的下标时的答案。

样例

输入 1

6
1 2 3 1 3 4

输出 1

4 3 3 4 3 3

说明 1

不同的数字集合为 $S = \{ 1, 2, 3, 4 \}$。假设 Farmer John 最喜欢的下标是 $j=1$。他开始时在纸上写下了 $A_1=1$。我们可以追踪 Farmer John 每次循环移位后的数组 $A$:

  1. 循环右移:FJ 写下 $A_1 = 4$。
     4 1 2 3 1 3
  2. 循环左移:FJ 再次写下 $A_1 = 1$。
     1 2 3 1 3 4
  3. 循环左移:FJ 写下 $A_1 = 2$。
     2 3 1 3 4 1
  4. 循环左移:FJ 写下 $A_1 = 3$。
     3 1 3 4 1 2

此时,Farmer John 通过 4 次操作写下了 $S$ 中的所有数字。

输入 2

12
1 1 2 1 1 3 1 1 4 1 1 1

输出 2

8 7 6 7 8 9 8 7 6 7 8 9

子任务

  • 测试点 3-5:$N\le 500$
  • 测试点 6-8:$N\le 10^4$
  • 测试点 9-17:无额外限制。

题目来源:Chongtian Ma

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.