[Buổi 8][Sắp xếp, bộ so sánh & nén tọa độ][HW] Bài 2: Mã hóa tọa độ compact


LÀM BÀI

Points: 100
Time limit: 2.0s
Memory limit: 256M

Author:
Problem types

Mã hóa tọa độ compact

Bối cảnh và bài toán

Một hệ thống lưu các tọa độ/giá trị rất lớn nhưng chỉ cần quan hệ thứ tự giữa chúng. Để tiết kiệm miền chỉ số, mỗi giá trị phân biệt được thay bằng một mã nguyên không âm nhỏ nhất có thể, đồng thời phải giữ nguyên quan hệ < và =.

Yêu cầu

Với mỗi giá trị ban đầu, in mã nén 0-based của nó: giá trị nhỏ nhất nhận 0, giá trị phân biệt tiếp theo nhận 1, ...

Input

  • Dòng 1: n.
  • n dòng tiếp theo: mỗi dòng một giá trị a[i].

Output

In n dòng; dòng i là mã nén của a[i].

Ràng buộc

  • 1 <= n <= 10^5
  • |a[i]| <= 10^9

Chấm điểm

Subtask Điểm Điều kiện Official tests
S1 20% n ≤ 10^3 01–04
S2 30% n ≤ 8*10^4 05–10
S3 50% Không có ràng buộc bổ sung 11–20

Ví dụ 1

Input

5
3
3
1
6
1

Output

1
1
0
2
0

Giải thích. Các giá trị phân biệt tăng dần là [1,3,6], nên mã tương ứng là 0,1,2.

Ví dụ 2

Input

4
8
6
4
2

Output

3
2
1
0

Giải thích. Bốn giá trị đều khác nhau; thứ hạng tăng dần lần lượt 2,4,6,8.

Thông tin bài tập

Thuộc tính Giá trị
Mã bài DSA-M03-B08-HW02
Buổi B08
Loại bài HOMEWORK
Mức độ khó Trung bình (Medium)
Thời gian làm bài khuyến nghị 35 phút
Time limit 2 giây
Memory limit 256 MB
Tổng điểm 100
Chuẩn ngôn ngữ tham chiếu C++11 trở lên

Nguồn: Phỏng theo AtCoder Beginner Contest 036 C — 座圧 (Coordinate Compression).

Tham khảo: https://atcoder.jp/contests/abc036/tasks/abc036_c


Comments

There are no comments at the moment.

Zalo