#P15926. [Roi2020 Regional]对抗日常重复

[Roi2020 Regional]对抗日常重复

提高员工工作效率的重要方法之一,是减少工作内容的单调重复。下面建立一个数学模型,用来描述员工在公司中完成任务类型的多样性。

考虑某位员工连续 nn 个工作日的工作情况。假设每天该员工恰好完成一种类型的任务,用整数 aia_i 表示第 ii 天完成的任务类型。

为了评估工作的单调程度,定义如下指标。固定一个整数 dd,考虑所有长度为 dd 的连续工作日区间。对每个这样的区间,统计其中出现过多少种不同的任务类型,并将这些数量相加。所得值记为 SdS_d,称为 dd-多样性。dd-多样性越高,表示员工在长度为 dd 的时间段中接触到的任务类型越多。

员工的多样性档案定义为数组:

[S1,S2,,Sn].[S_1,S_2,\ldots,S_n].

请编写程序,给定任务类型序列 a1,a2,,ana_1,a_2,\ldots,a_n,计算该员工的多样性档案。

输入格式

第一行包含整数 nn,表示需要分析的连续工作日数。

1n2105.1\le n\le 2\cdot 10^5.

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n,表示每天完成的任务类型。

1ai109.1\le a_i\le 10^9.

输出格式

输出 nn 个整数:

S1,S2,,Sn.S_1,S_2,\ldots,S_n.

子任务

子任务 分值 限制 必须通过的子任务 反馈
1 12 1n50, 1ai501\le n\le 50,\ 1\le a_i\le 50 - 第一处错误
2 10 1n50, 1ai1091\le n\le 50,\ 1\le a_i\le 10^9 1
3 1n500, 1ai1091\le n\le 500,\ 1\le a_i\le 10^9 1, 2
4 12 1n5000, 1ai50001\le n\le 5000,\ 1\le a_i\le 5000 1
5 10 1n5000, 1ai1091\le n\le 5000,\ 1\le a_i\le 10^9 1–4
6 16 1n2105, 1ai501\le n\le 2\cdot 10^5,\ 1\le a_i\le 50 1
7 30 1n2105, 1ai1091\le n\le 2\cdot 10^5,\ 1\le a_i\le 10^9 1–6

样例 1

样例输入

5
1 3 2 1 2

样例输出

5 8 8 6 3

样例 2

样例输入

3
10 10 10

样例输出

3 2 1

样例解释

以样例 1 为例:

  • S1=1+1+1+1+1=5S_1=1+1+1+1+1=5
  • 长度为 22 的所有区间分别为 [1,3][1,3][3,2][3,2][2,1][2,1][1,2][1,2],每个区间中都有 22 种不同任务,因此 S2=8S_2=8
  • 长度为 33 的区间中,不同任务数分别为 3,3,23,3,2,因此 S3=8S_3=8
  • 长度为 44 的区间中,不同任务数分别为 3,33,3,因此 S4=6S_4=6
  • 长度为 55 的唯一一个区间中有 33 种不同任务,因此 S5=3S_5=3