[Buổi 17][Comparator & prefix sum][Lab] Bài 1: Sắp xếp cặp nhiều tiêu chí
Sắp xếp cặp nhiều tiêu chí
Bối cảnh
Mỗi bản ghi là {score,id}. Xếp score giảm dần; nếu bằng score, ID tăng dần.
Comparator phải strict và mã hóa đủ tie-break.
Yêu cầu
- Đọc n cặp score id.
- Sort bằng comparator.
- In
id scoretheo ranking.
Yêu cầu tổ chức code
Không dùng struct; dùng pair đúng scope B17.
Online Judge chấm output. Với bài nhạy về cấu trúc lời giải, giảng viên có thể review source code để xác nhận học viên luyện đúng năng lực.
Input
Dòng 1 n; n dòng score id.
Output
n dòng id score.
Ràng buộc
1≤n≤5000.
Ví dụ 1
Input
4
90 3
95 7
95 2
80 1
Output
2 95
7 95
3 90
1 80
Giải thích
Các record được hiểu là (score,id). Score 95 cao hơn 90 và 80 nên hai record 95 đứng đầu. Giữa (95,7) và (95,2), score bằng nhau nên tie-break theo ID tăng dần, làm ID 2 đứng trước ID 7. Sau đó mới đến ID 3/90 và ID 1/80. Output in theo dạng id score, đúng thứ tự comparator.
Ví dụ 2
Input
1
10 9
Output
9 10
Giải thích
Chỉ có một record (score=10,id=9). std::sort không cần thực hiện phép đổi chỗ nào và comparator không ảnh hưởng kết quả. Khi in, đề yêu cầu thứ tự field là id score, nên cặp lưu trong vector được xuất thành 9 10. Ví dụ này cũng kiểm tra code không giả định n phải lớn hơn 1.
Thông tin học tập
- Module: M05
- Buổi: B17
- Loại bài: LAB
- Độ khó: Medium
- Concepts: pair, custom comparator, tie-break, strict ordering
- Giới hạn kiến thức: B01-B17
- Time limit: 1 second(s)
- Memory limit: 256 MB
- Point: 100
Comments