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ố n 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á 100000.
  • Dòng thứ hai chứa số nguyên dương n — số thí sinh.
  • Dòng thứ i trong n dòng tiếp theo mô tả yêu cầu của thí sinh thứ i: 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 đó n dòng — dòng thứ i là cỡ áo phát cho thí sinh thứ i. Nếu có nhiều đáp án hợp lệ, in ra một đáp án bất kỳ.

Ràng buộc

  • 1n100000
  • Tổng số áo 100000
  • 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

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 GO groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0