Борьба с рутиной

아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

Важным элементом повышения эффективности работы сотрудников является борьба с рутиной. Построим математическую модель разнообразия типов заданий, выполняемых сотрудником в компании.

Рассмотрим работу сотрудника в течение n последовательных рабочих дней. Будем считать, что каждый день сотрудник выполняет ровно один тип заданий, обозначим тип заданий, выполняемый сотрудником в i-й день, целым числом ai.

Для оценки рутинности работы сотрудника будем использовать следующую характеристику. Зафиксируем целое число d и рассмотрим все отрезки из d подряд идущих рабочих дней. Для каждого такого отрезка найдём количество различных типов заданий, которые работник выполнял на протяжении этих дней, и просуммируем эти значения. Полученную величину обозначим как Sd и будем называть её d-разнообразием. Чем d-разнообразие выше, тем больше различных типов заданий выполнял сотрудник. Профилем вариативности сотрудника будем называть массив значений [S1, S2, . . . , Sn].

Требуется написать программу, которая по заданной последовательности a1, a2, . . . , an типов выполняемых сотрудником заданий вычисляет его профиль вариативности.

입력

В первой строке находится единственное целое число n — количество последовательных рабочих дней, которые необходимо проанализировать (1 ≤ n ≤ 2 · 105).

Во второй строке находится n целых чисел a1, a2, . . . , an — типы заданий, которое выполнял сотрудник (1 ≤ ai ≤ 109).

출력

Выведите n целых чисел: S1, S2, . . . , Sn.

힌트

Рассмотрим, как вычисляются значения Sd в первом примере.

1-разнообразие: необходимо просуммировать количество различных типов заданий, выполняемых сотрудником по всем отрезкам, состоящим из одного дня.

Отрезок днейТипы заданийКоличество различных
1 - 111
2 - 231
3 - 321
4 - 411
5 - 521

Значение 1-разнообразия равно S1 = 1 + 1 + 1 + 1 + 1 = 5.

2-разнообразие: необходимо просуммировать количество различных типов заданий, выполняемых сотрудником по всем отрезкам, состоящим из двух дней.

Отрезок днейТипы заданийКоличество различных
1 - 21, 32
2 - 33, 22
3 - 42, 12
4 - 51, 22

Значение 2-разнообразия равно S2 = 2 + 2 + 2 + 2 = 8.

3-разнообразие: необходимо просуммировать количество различных типов заданий, выполняемых сотрудником по всем отрезкам, состоящим из трех дней.

Отрезок днейТипы заданийКоличество различных
1 - 31, 3, 23
2 - 43, 2, 13
3 - 52, 1, 22

Значение 3-разнообразия равно S3 = 3 + 3 + 2 = 8.

4-разнообразие: необходимо просуммировать количество различных типов заданий, выполняемых сотрудником по всем отрезкам, состоящим из четырех дней.

Отрезок днейТипы заданийКоличество различных
1 - 41, 3, 2, 13
2 - 53, 2, 1, 23

Значение 4-разнообразия равно S4 = 3 + 3 = 6.

5-разнообразие: необходимо просуммировать количество различных типов заданий, выполняемых сотрудником по всем отрезкам, состоящим из пяти дней.

Отрезок днейТипы заданийКоличество различных
1 - 51, 3, 2, 1, 23

Значение 5-разнообразия равно S5 = 3.