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_TRItăng dần.
- Nếu GIA_TRIbằng nhau, sắp xếp theoIDtăng dần.
Ví dụ:
Input:
5
101 500
105 200
102 500
103 800
104 200Output:
104 200
105 200
101 500
102 500
103 800Giả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_TRItă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_TRIbằng nhau theoIDtă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