#5191. Problem 1. Haircut
Problem 1. Haircut
Problem 1. Haircut
USACO 2020 US Open Contest, Gold
Tired of his stubborn cowlick, Farmer John decides to get a haircut. He has () strands of hair arranged in a line, and strand is initially micrometers long (). Ideally, he wants his hair to be monotonically increasing in length, so he defines the "badness" of his hair as the number of inversions: pairs such that and .
For each of , FJ would like to know the badness of his hair if all strands with length greater than are decreased to length exactly .
(Fun fact: the average human head does indeed have about hairs!)
INPUT FORMAT (file haircut.in):
The first line contains .
The second line contains
OUTPUT FORMAT (file haircut.out):
For each of , output the badness of FJ's hair on a new line.
Note that the large size of integers involved in this problem may require the use of 64-bit integer data types (e.g., a "long long" in C/C++).
SAMPLE INPUT:
5 5 2 3 3 0
SAMPLE OUTPUT:
0 4 4 5 7
The fourth line of output describes the number of inversions when FJ's hairs are decreased to length 3. Then has five inversions: and .
SCORING: Test case 2 satisfies Test cases 3-5 satisfy Test cases 6-13 satisfy no additional constraints.
Problem credits: Dhruv Rohatgi