Bài 29.3. Sắp Xếp Lịch Trình Công Việc - [Độ khó: Khá]
Bài 29.3. Sắp Xếp Lịch Trình Công Việc - [Độ khó: Khá]
Trong một dự án phần mềm phức tạp, bạn là người chịu trách nhiệm quản lý lịch trình các công việc. Mỗi công việc có một ID, tên, độ ưu tiên (từ 1 đến 5, 5 là cao nhất) và một thời hạn hoàn thành cụ thể (ngày, tháng, năm). Để đảm bảo các công việc quan trọng và khẩn cấp được xử lý trước, bạn cần sắp xếp danh sách công việc.
INPUT FORMAT
Dòng đầu tiên chứa một số nguyên dương N
(\(1 \le N \le 100\)), là số lượng công việc.
Tiếp theo là N
dòng, mỗi dòng chứa thông tin của một công việc theo định dạng:
ID Ten_CV Do_Uu_Tien Ngay Thang Nam
ID
: Chuỗi ký tự (không có khoảng trắng), tối đa 10 ký tự.Ten_CV
: Chuỗi ký tự (có thể có khoảng trắng, nhưng được nhập nguyên dòng), tối đa 50 ký tự.Do_Uu_Tien
: Số nguyên, từ 1 đến 5.Ngay
,Thang
,Nam
: Các số nguyên tạo thành ngày hợp lệ.Nam
từ 2023 đến 2025.
OUTPUT FORMAT
In ra danh sách các công việc sau khi đã sắp xếp. Quy tắc sắp xếp:
- Ưu tiên các công việc có
Do_Uu_Tien
cao hơn (giảm dần). - Nếu
Do_Uu_Tien
bằng nhau, ưu tiên các công việc cóThoi_Han
sớm hơn (tăng dần).Thoi_Han
được so sánh theo thứ tự năm, rồi tháng, rồi ngày. Định dạng đầu ra cho mỗi công việc:ID Ten_CV Do_Uu_Tien Ngay/Thang/Nam
Ví dụ:
Input:
4
CV001 Thiet_Ke_UI 3 15 12 2023
CV002 Phat_Trien_Module_A 5 10 11 2023
CV003 Sua_Loi_Nho 3 20 12 2023
CV004 Hop_Khach_Hang 5 5 11 2023
Output:
CV004 Hop_Khach_Hang 5 05/11/2023
CV002 Phat_Trien_Module_A 5 10/11/2023
CV001 Thiet_Ke_UI 3 15/12/2023
CV003 Sua_Loi_Nho 3 20/12/2023
Giải thích:
- Sắp xếp theo
Do_Uu_Tien
giảm dần:CV002
(5),CV004
(5)CV001
(3),CV003
(3)
- Trong nhóm
Do_Uu_Tien
= 5:CV004
có thời hạn 05/11/2023.CV002
có thời hạn 10/11/2023.CV004
đến trướcCV002
.
- Trong nhóm
Do_Uu_Tien
= 3:CV001
có thời hạn 15/12/2023.CV003
có thời hạn 20/12/2023.CV001
đến trướcCV003
.
- Kết quả cuối cùng là danh sách được sắp xếp như trên.
Comments