Bài 16.1. Sắp Xếp Giao Dịch - [Độ khó: Dễ]
Bài 16.1. Sắp Xếp Giao Dịch - [Độ khó: Dễ]
Trong một cửa hàng bán lẻ, hàng ngày có hàng trăm giao dịch được thực hiện. Để phân tích và theo dõi hiệu quả kinh doanh, ban quản lý muốn xem xét các giao dịch theo thứ tự giá trị. Tuy nhiên, nếu có hai giao dịch có cùng giá trị, họ muốn ưu tiên giao dịch nào được ghi nhận với ID nhỏ hơn (ID là duy nhất).
Bạn được yêu cầu viết chương trình giúp sắp xếp danh sách các giao dịch này.
INPUT FORMAT
Dòng đầu tiên chứa một số nguyên dương N
(\(1 \le N \le 10^5\)), là tổng số lượng giao dịch.
N
dòng tiếp theo, mỗi dòng chứa hai số nguyên: ID
và GIA_TRI
.
ID
: Số nguyên dương (\(1 \le ID \le 10^9\)).GIA_TRI
: Số nguyên không âm (\(0 \le GIA\_TRI \le 10^9\)).
OUTPUT FORMAT
In ra N
dòng, mỗi dòng là ID
và GIA_TRI
của một giao dịch đã được sắp xếp. Các giá trị trên mỗi dòng được ngăn cách bởi một khoảng trắng.
Thứ tự sắp xếp:
- Theo
GIA_TRI
tăng dần. - Nếu
GIA_TRI
bằng nhau, sắp xếp theoID
tăng dần.
Ví dụ:
Input:
5
101 500
105 200
102 500
103 800
104 200
Output:
104 200
105 200
101 500
102 500
103 800
Giải thích:
- Các giao dịch ban đầu: (101, 500), (105, 200), (102, 500), (103, 800), (104, 200).
- Sắp xếp theo
GIA_TRI
tăng dần:GIA_TRI = 200
: (105, 200), (104, 200)GIA_TRI = 500
: (101, 500), (102, 500)GIA_TRI = 800
: (103, 800)
- Xử lý các trường hợp
GIA_TRI
bằng nhau theoID
tăng dần:- Trong nhóm
GIA_TRI = 200
: (104, 200) có ID 104 nhỏ hơn (105, 200) có ID 105. Nên (104, 200) đứng trước. - Trong nhóm
GIA_TRI = 500
: (101, 500) có ID 101 nhỏ hơn (102, 500) có ID 102. Nên (101, 500) đứng trước.
- Trong nhóm
- Kết quả cuối cùng: (104, 200), (105, 200), (101, 500), (102, 500), (103, 800).
Comments