Bài 17.1. Quản Lý Hồ Sơ Sinh Viên - [Độ khó: Khá]
Bài 17.1. Quản Lý Hồ Sơ Sinh Viên - [Độ khó: Khá]
Bạn là quản trị viên hệ thống của một trường đại học danh tiếng. Nhà trường yêu cầu bạn xây dựng một chương trình để quản lý và hiển thị danh sách sinh viên dựa trên các tiêu chí ưu tiên đặc biệt nhằm phục vụ cho việc xét học bổng và các chương trình ưu đãi.
Mỗi sinh viên có các thông tin sau: Tên (một chuỗi không dấu cách), Điểm trung bình (GPA, một số thực), và Số năm học (một số nguyên dương).
Yêu cầu: Hãy sắp xếp danh sách sinh viên theo thứ tự ưu tiên sau:
- Giảm dần theo Điểm trung bình (GPA). Sinh viên có GPA cao hơn sẽ đứng trước.
- Nếu Điểm trung bình bằng nhau, sắp xếp tăng dần theo Số năm học. Sinh viên có số năm học ít hơn sẽ đứng trước.
- Nếu cả Điểm trung bình và Số năm học đều bằng nhau, sắp xếp tăng dần theo Tên (theo thứ tự từ điển).
INPUT FORMAT
Dòng đầu tiên chứa một số nguyên dương N
(1 <= N
<= 1000) - số lượng sinh viên.
N
dòng tiếp theo, mỗi dòng chứa thông tin của một sinh viên: Ten GPA SoNamHoc
.
Ten
: một chuỗi ký tự không dấu cách, độ dài tối đa 50 ký tự.GPA
: một số thực (float/double) trong khoảng [0.0, 4.0].SoNamHoc
: một số nguyên trong khoảng [1, 7].
OUTPUT FORMAT
In ra danh sách N
sinh viên đã được sắp xếp, mỗi sinh viên trên một dòng. Định dạng mỗi dòng là: Ten GPA SoNamHoc
. GPA nên được in ra với 2 chữ số thập phân.
Ví dụ:
Input:
4
Alice 3.85 2
Bob 3.90 3
Charlie 3.85 1
David 3.90 3
Output:
Bob 3.90 3
David 3.90 3
Charlie 3.85 1
Alice 3.85 2
Giải thích:
- Bước 1 (GPA giảm dần):
- Bob (3.90), David (3.90) cao hơn Alice (3.85), Charlie (3.85).
- Do đó, Bob và David sẽ đứng trước.
- Bước 2 (Số năm học tăng dần nếu GPA bằng):
- Giữa Bob và David: Cả hai đều có GPA 3.90 và Số năm học 3. Vì vậy, bước này không thay đổi thứ tự tương đối của họ.
- Giữa Charlie và Alice: Cả hai đều có GPA 3.85. Charlie có 1 năm học, Alice có 2 năm học. Charlie (1 năm) đứng trước Alice (2 năm).
- Bước 3 (Tên tăng dần nếu GPA và Số năm học bằng):
- Giữa Bob và David: Cả hai đều có GPA 3.90 và Số năm học 3. Theo thứ tự từ điển, "Bob" đứng trước "David". Nên Bob đứng trước David.
- Kết quả cuối cùng: Bob, David, Charlie, Alice.
Comments