#STK0000081. Các tòa nhà (Buildings)

Các tòa nhà (Buildings)

Các tòa nhà (Buildings)

Nguồn: AtCoder

Phiên bản: Phước Hưng OJ Extended

Đề bài

Có NN tòa nhà đánh số từ 11 đến NN, tòa ii cao HiH_i. Các chiều cao đôi một khác nhau. Với mỗi ii, hãy đếm số chỉ số j>ij>i sao cho giữa ii và jj không có tòa nào cao hơn tòa jj.

Input

Dòng đầu chứa NN. Dòng thứ hai chứa NN số nguyên H1,H2,…,HNH_1,H_2,\ldots,H_N.

Output

In NN số nguyên; số thứ ii là số tòa jj thỏa điều kiện đối với tòa ii.

Subtask

  • Subtask 1 (30 điểm): N≤2000N\le2000; các điều kiện khác giữ nguyên.
  • Subtask 2 (70 điểm): 1≤N≤2⋅1051\le N\le2\cdot10^5, 1≤Hi≤N1\le H_i\le N, các HiH_i đôi một khác nhau.

Ví dụ

Input

5
2 1 4 3 5

Output

3 2 2 1 0

Giải thích

Dãy chiều cao là 2,1,4,3,52,1,4,3,5.

  • Với i=1i=1, các chỉ số j=2,3,5j=2,3,5 thỏa điều kiện. j=4j=4 không thỏa vì tòa 33 cao 44 nằm giữa và cao hơn tòa 44 cao 33. Vì vậy c1=3c_1=3.
  • Với i=2i=2, j=3j=3 và j=5j=5 thỏa điều kiện, còn j=4j=4 bị tòa 33 cao hơn che theo điều kiện của đề. Do đó c2=2c_2=2.
  • Với i=3i=3, cả j=4j=4 và j=5j=5 đều thỏa, nên c3=2c_3=2.
  • Với i=4i=4, chỉ có j=5j=5, nên c4=1c_4=1.
  • Với i=5i=5, không còn tòa nào bên phải, nên c5=0c_5=0.

Do đó chương trình in 3 2 2 1 0.