Phân phối áo cỡ
Đề bài
Mô tả
Ban tổ chức một cuộc thi lập trình chuẩn bị phát áo cho các thí sinh. Có sáu cỡ áo theo thứ tự tăng dần: S, M, L, XL, XXL, XXXL. Với mỗi cỡ áo, bạn được cho trước số lượng áo hiện có.
Khi đăng ký, mỗi trong số thí sinh khai báo cỡ áo mình muốn nhận. Nếu thí sinh đang phân vân giữa hai cỡ áo thì có thể chọn hai cỡ liền kề (theo thứ tự trên) — nghĩa là thí sinh đó có thể nhận được bất kỳ cỡ nào trong hai cỡ đó.
Hãy xác định xem có thể phát áo cho tất cả thí sinh sao cho:
- Mỗi thí sinh khai báo một cỡ nhận đúng cỡ đó.
- Mỗi thí sinh khai báo hai cỡ liền kề nhận một trong hai cỡ đó.
- Không cỡ nào bị phát quá số áo hiện có.
Nếu có thể, in ra một cách phát bất kỳ hợp lệ.
Dữ liệu vào
- Dòng đầu tiên gồm sáu số nguyên không âm — số lượng áo cỡ S, M, L, XL, XXL, XXXL. Tổng số áo không vượt quá .
- Dòng thứ hai chứa số nguyên dương — số thí sinh.
- Dòng thứ trong dòng tiếp theo mô tả yêu cầu của thí sinh thứ : hoặc một cỡ, hoặc hai cỡ liền kề viết theo thứ tự tăng dần và ngăn cách bằng dấu phẩy (không có khoảng trắng).
Dữ liệu ra
- Nếu không thể phát áo cho tất cả thí sinh, in ra
NO. - Ngược lại, in
YESở dòng đầu tiên, sau đó dòng — dòng thứ là cỡ áo phát cho thí sinh thứ . Nếu có nhiều đáp án hợp lệ, in ra một đáp án bất kỳ.
Ràng buộc
- Tổng số áo
- Mỗi số lượng áo là số nguyên không âm
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 0 1 0 1 1 0 3 XL S,M XL,XXL |
YES XL M XXL |
Thí sinh 1 muốn XL — có 1 áo XL, phát cho thí sinh 1. Thí sinh 2 chọn S hoặc M; chỉ có áo M nên nhận M. Thí sinh 3 chọn XL hoặc XXL; XL đã hết nên nhận XXL. |
| 1 1 2 0 1 1 5 S M S,M XXL,XXXL XL,XXL |
NO | Thí sinh 1 và 2 lần lượt lấy hết áo S và M. Thí sinh 3 chọn S hoặc M nhưng cả hai cỡ đã hết, nên không có cách phát hợp lệ. |
Bình luận