페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#3705

미용 1s 256MB

문제

멋쟁이 현서는 오늘 미용실에서 머리를 자르려고 한다.

 

현서의 머리에는 n개의 머리카락이 있는데, 각 머리카락 길이를 왼쪽부터 오른쪽까지 차례로 A_1, A_2, \cdots A_n 라고 하자. 놀랍게도 현서의 머리카락 길이는 모두 n이하이다.

 

오늘 현서가 원하는 헤어스타일은 제일 왼쪽에 있는 머리카락부터 오른쪽으로 진행할 때, 머리카락 길이가 오름차순으로 정렬되는 스타일이다.

 그러므로, 현서는 i \lt j 인데, A_i \gt A_j 를 만족하는 모든 머리카락 쌍의 개수를 머리스타일의 “불규칙 지수”라고 정의하기로 하였다.

 

현서는 상남자이기 때문에, 다음과 같은 이발 방식을 사용한다.

-  바리깡에 길이 T의 탭을 끼우고, 모든 머리카락을 밀어버린다. 이 때 길이가 T보다 긴 모든 머리카락의 길이는 T가 된다. 그대로 이발을 종료한다.

 

현서는 머리가 너무 짧아지는 것도 싫고, 불규칙 지수가 너무 많아지는 것도 싫기 때문에, 모든 T값에 대한 불규칙 지수를 계산하려고 한다. 이를 도와주는 프로그램을 작성하라. 


입력

첫 줄에 현서의 머리카락의 개수 n(1 ≤ n ≤ 100,000; 재미있는 점은, 인간의 머리카락은 실제로 평균 10만 개쯤 있다!)이 주어진다.

둘째 줄에 n개의 머리카락의 각 길이 A_i(0 ≤ A_i ≤ n)가 주어진다.

주어진 수들은 모두 정수이다. 


출력

n줄에 걸쳐, T = 0, 1, 2… n-1 일 때, 불규칙 지수를 출력한다.

답이 32bit 정수의 범위를 넘어갈 수 있음에 유의한다.


부분문제

번호 점수 조건
#16점

N≤​100

#231점

N≤​5,000

#363점

추가 제한 사항 없다.


예제

5

5 2 3 3 0
0

4
4
5
7

(4번 째 줄) T = 3일 때, 미용 후 현서의 머리카락 길이는 3 2 3 3 0 이고, (i,j) = { (1,2) , (1,5) (2,5) (3,5) (4,5)}일 때 머리카락 길이가 불규칙하다.


출처

USACO Open Contest 2020 Gold #1 (Credit: Dhruv Rohatgi)
로그인해야 코드를 작성할 수 있어요.