Bài 22.5. Xếp hạng Thí sinh theo Điểm và Thời gian - [Độ khó: Khó]
Bài 22.5. Xếp hạng Thí sinh theo Điểm và Thời gian - [Độ khó: Khó]
Mô tả bài tập:
Trong một cuộc thi lập trình, các thí sinh được xếp hạng dựa trên tổng điểm và thời gian nộp bài cuối cùng của họ. Nếu hai thí sinh có cùng tổng điểm, thí sinh nào có thời gian nộp bài cuối cùng ít hơn sẽ được xếp hạng cao hơn. Nếu cả điểm và thời gian đều bằng nhau, thí sinh có mã ID nhỏ hơn (theo thứ tự từ điển) sẽ được xếp hạng cao hơn. Bạn được cung cấp danh sách điểm và thời gian nộp bài của các thí sinh. Hãy tạo bảng xếp hạng top K
thí sinh.
INPUT FORMAT
Dòng đầu tiên chứa hai số nguyên N
(1 <= N <= 10^5) và K
(1 <= K <= N). N
là tổng số thí sinh, K
là số lượng thí sinh trong top muốn hiển thị.
N
dòng tiếp theo, mỗi dòng chứa thông tin của một thí sinh:
ID_ThiSinh
Diem_so
Thoi_gian_nop_bai
ID_ThiSinh
: Chuỗi không chứa dấu cách (độ dài từ 1 đến 10 ký tự).Diem_so
: Số nguyên (0 <= Diem_so <= 1000).Thoi_gian_nop_bai
: Số nguyên (0 <= Thoi_gian_nop_bai <= 10^9), đại diện cho thời gian tính bằng phút kể từ khi cuộc thi bắt đầu.
OUTPUT FORMAT
In ra K
dòng, mỗi dòng là thông tin của một thí sinh trong top K
theo định dạng:
ID_ThiSinh
Diem_so
Thoi_gian_nop_bai
Các thí sinh được sắp xếp theo tiêu chí:
Diem_so
giảm dần.- Nếu
Diem_so
bằng nhau,Thoi_gian_nop_bai
tăng dần. - Nếu cả
Diem_so
vàThoi_gian_nop_bai
bằng nhau,ID_ThiSinh
tăng dần theo thứ tự từ điển.
Ví dụ:
Input:
5 3
TS001 800 120
TS002 900 100
TS003 800 110
TS004 750 150
TS005 900 100
Output:
TS002 900 100
TS005 900 100
TS003 800 110
Giải thích: Các thí sinh và thông tin của họ:
- TS001: Điểm 800, Thời gian 120
- TS002: Điểm 900, Thời gian 100
- TS003: Điểm 800, Thời gian 110
- TS004: Điểm 750, Thời gian 150
- TS005: Điểm 900, Thời gian 100
Sắp xếp theo tiêu chí:
- Điểm 900:
- TS002 (Thời gian 100)
- TS005 (Thời gian 100) => Vì thời gian bằng nhau, xét ID: TS002 trước TS005. => Thứ tự: TS002, TS005
- Điểm 800:
- TS003 (Thời gian 110)
- TS001 (Thời gian 120) => Thứ tự: TS003, TS001
- Điểm 750:
- TS004 (Thời gian 150) => Thứ tự: TS004
Kết hợp lại và lấy top 3:
- TS002 900 100
- TS005 900 100
- TS003 800 110
Comments