CF727D T-shirts Distribution
题目描述
编程竞赛的组织者决定为参赛者赠送 T 恤。此题共有六种不同的 T 恤尺码:S、M、L、XL、XXL、XXXL(尺码以递增顺序给出)。T 恤已经备好。对于每个尺码,从 S 到 XXXL,给出该尺码 T 恤的数量。
在注册时,组织者询问每位 $ n $ 名参赛者希望获得的 T 恤尺码。如果某位参赛者在两个尺码间犹豫,可以指定两个相邻的尺码——这意味着这两种尺码都适合他。
请编写程序,判断是否可能让每位参赛者都拿到合适的 T 恤。每位参赛者只能获得:
- 如果他只指定一个尺码,则只能发该尺码;
- 如果他指定两个相邻尺码,则可以发其中任意一个。
如果可能,请输出任意一种有效的 T 恤分配方案。
输入格式
第一行输入六个非负整数,依次表示 S、M、L、XL、XXL、XXXL 尺码的 T 恤数量。T 恤总数不超过 $100000$。
第二行输入一个正整数 $ n $($1\leq n\leq 100000$),表示参赛者人数。
接下来的 $ n $ 行,每行表示一名参赛者的需求。第 $ i $ 行包含该参赛者指定的信息:一个尺码,或用英文逗号(无空格)分隔的两个相邻尺码(尺码以递增顺序给出)。保证两尺码写在一起时为相邻尺码。
输出格式
如果无法为每个参赛者分配合适的 T 恤,输出一行 “NO”。
如果可以分配,输出共 $ n+1 $ 行。第一行输出 “YES”。接下来的 $ n $ 行,按输入顺序,每行输出给第 $ i $ 位参赛者分配的 T 恤尺码。
如果存在多种分配方案,输出任意一种都可以。
说明/提示
由 ChatGPT 5 翻译