Xếp hàng

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1000 (p) Thời gian: 0.5s Bộ nhớ: 1G Input: LINEUP.INP Output: LINEUP.OUT

Trong giờ học đội ngũ, có \(n\) người xếp hàng dọc đánh số từ \(1\) tới \(n\), người thứ \(i\) có chiều cao là \(h_i\). Người có chỉ số nhỏ hơn đứng trước.

Sau khi xếp hàng, có một số người phàn nàn rằng anh ta bị người khác chắn tầm mắt. Cụ thể là người \(i\) bị người \(j\) chắn tầm mắt nếu:

  • Người \(j\) đứng trước người \(i\) \((j < i)\),
  • Người \(j\) cao hơn người \(i\) \((h_j > h_i)\),
  • Người \(j\) đứng gần người \(i\) nhất (\(j\) lớn nhất có thể).

Yêu cầu: Với mỗi người, cho biết anh ta bị người nào chắn tầm mắt.

Input

Vào từ file văn bản LINEUP.INP

  • Dòng 1 chứa số nguyên dương \(n \leq 10^5\).
  • Dòng 2 chứa \(n\) số nguyên dương \(h_1, h_2, \ldots, h_n\) cách nhau bởi dấu cách \((\forall i: h_i \leq 10^9)\).

Output

Ghi ra file văn bản LINEUP.OUT \(n\) số \(k_1, k_2, \ldots, k_n\) cách nhau bởi dấu cách. Trong đó \(k_i\) là số hiệu người chắn tầm mắt của người \(i\). Nếu người \(i\) không bị ai chắn tầm mắt, thì quy ước \(k_i = 0\).

Example

Test 1

LINEUP.INP
9
30 20 10 40 90 50 40 60 70 
LINEUP.OUT
0 1 2 0 0 5 6 5 5

Nguồn: Thầy Lê Minh Hoàng

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.