Bài 37.11. Hệ Thống Ưu Tiên Bệnh Nhân - [Độ khó: Khó]
Bài 37.11. Hệ Thống Ưu Tiên Bệnh Nhân - [Độ khó: Khó]
Một bệnh viện muốn quản lý danh sách bệnh nhân theo mức độ ưu tiên để phục vụ kịp thời. Mỗi bệnh nhân có một tên và một mức độ ưu tiên (số nguyên, 1 là cao nhất, số lớn hơn là ưu tiên thấp hơn). Khi có bệnh nhân mới đến, họ sẽ được thêm vào danh sách sao cho danh sách luôn được sắp xếp theo thứ tự ưu tiên tăng dần. Khi bác sĩ gọi bệnh nhân, người có ưu tiên cao nhất (số ưu tiên nhỏ nhất) sẽ được gọi. Nếu có nhiều bệnh nhân cùng mức ưu tiên, người đến trước sẽ được gọi trước. Hãy sử dụng danh sách liên kết để xây dựng hệ thống này.
INPUT FORMAT
Dòng đầu tiên chứa số nguyên Q
(1 <= Q <= 100), số lượng thao tác.
Q
dòng tiếp theo, mỗi dòng là một thao tác:
ADD <Ten_benh_nhan> <Muc_do_uu_tien>
: Thêm bệnh nhân vào danh sách.Ten_benh_nhan
là chuỗi không khoảng trắng, độ dài tối đa 20 ký tự.Muc_do_uu_tien
là số nguyên từ 1 đến 10.CALL
: Gọi bệnh nhân có ưu tiên cao nhất. Xóa bệnh nhân đó khỏi danh sách.LIST
: Liệt kê tất cả bệnh nhân hiện có trong danh sách theo thứ tự ưu tiên.
OUTPUT FORMAT
- Với thao tác
CALL
: In raBenh nhan X da duoc goi.
(trong đóX
là tên bệnh nhân được gọi). Nếu danh sách rỗng, in raDanh sach rong.
- Với thao tác
LIST
: Với mỗi bệnh nhân, in raTen_benh_nhan (Uu tien: Muc_do_uu_tien)
. Nếu danh sách rỗng, in raDanh sach rong.
Ví dụ:
Input:
6
ADD An 3
ADD Binh 1
ADD Cam 3
LIST
CALL
LIST
Output:
Binh (Uu tien: 1)
An (Uu tien: 3)
Cam (Uu tien: 3)
Benh nhan Binh da duoc goi.
An (Uu tien: 3)
Cam (Uu tien: 3)
Giải thích:
ADD An 3
: Danh sách: An (3)ADD Binh 1
: Binh có ưu tiên 1, An có 3. Binh được chèn trước An. Danh sách: Binh (1) -> An (3)ADD Cam 3
: Cam có ưu tiên 3, An có 3. Cam đến sau An, nên chèn sau An. Danh sách: Binh (1) -> An (3) -> Cam (3)LIST
: In ra theo thứ tự.CALL
: Binh có ưu tiên cao nhất (1). Binh được gọi và xóa khỏi danh sách.LIST
: In ra phần còn lại. An (3) -> Cam (3).
Comments