CF1886E I Wanna be the Team Leader
题目描述
Monocarp是一家大型IT公司的团队负责人。
他的编程团队需要完成 $ m $ 个项目,编号从 $ 1 $ 到 $ m $ 。第 $ i $ 个项目的难度级别为 $ b_i $ 。
团队中有 $ n $ 名程序员,编号从 $ 1 $ 到 $ n $ 。第 $ j $ 名程序员具有应对压力的能力水平 $ a_j $ 。
Monocarp希望以以下方式分配程序员到项目中:
- 每个程序员最多只能分配给一个项目;
- 每个项目至少有一个程序员被分配;
- 假设有 $ k $ 名程序员被分配到第 $ i $ 个项目;那么所有被分配的程序员的应对压力水平必须大于或等于 $ \frac{b_i}{k} $ 。
帮助Monocarp找到一个有效的分配方案。如果存在多个答案,随意输出一个即可。
输入格式
第一行包含两个整数 $ n $ 和 $ m $ ( $ 1 \le n \le 2 \cdot 10^5 $ ; $ 1 \le m \le 20 $ )——程序员数量和项目数量。
第二行包含 $ n $ 个整数 $ a_1, a_2, \dots, a_n $ ( $ 1 \le a_i \le 10^9 $ )——每个程序员的应对压力水平。
第三行包含 $ m $ 个整数 $ b_1, b_2, \dots, b_m $ ( $ 1 \le b_i \le 10^9 $ )——每个项目的难度级别。
输出格式
如果没有有效的分配方案,输出 "NO"。
否则,在第一行输出 "YES"。在接下来的 $ m $ 行中,按任意顺序输出被分配到第 $ i $ 个项目的程序员列表:首先输出程序员数量,然后按任意顺序输出他们的索引。
如果存在多个答案,随意输出一个即可。