#S0152. 【25CSPS提高组】员工招聘
题目描述
小 Z 和小 H 想要合伙开一家公司,共有 人前来应聘,编号为 。小 Z 和小H 希望录用至少 人。 小 H 是面试官,将在接下来 天每天面试一个人。小 Z 负责决定应聘人前来面试的顺序。具体地,小 Z 可以选择一个 ∼ 的排列 ,然后在第 天通知编号为 的人前来面试。 小 H 准备了 套难度不一的面试题。由于 个前来应聘的人水平大致相同,因此对于同一套题,所有人的作答结果是一致的。具体地,第 天的面试题的难度为 ,其中 表示这套题的难度较高,没有人能够做出; 表示这套题的难度较低,所有人均能做出。小 H 会根据面试者的作答结果决定是否录用,即如果面试者没有做出面试题,则会拒绝,否则会录用。 然而,每个人的耐心都有一定的上限,如果在他面试之前未录用的人数过多,则他会直接放弃参加面试。具体地,编号为 的人的耐心上限可以用非负整数 描述,若在他之前已经有不少于 人被拒绝或放弃参加面试,则他也将放弃参加面试。 小 Z 想知道一共有多少种面试的顺序 能够让他们录用至少 人。你需要帮助小Z 求出,能够录用至少 人的排列 的数量。由于答案可能较大,你只需要求出答案对 取模后的结果。
输入
输入的第一行包含两个正整数 , ,分别表示前来应聘的人数和希望录用的人数。 输入的第二行包含一个长度为 的字符串 . . . ,表示每一天的面试题的难度。 输入的第三行包含 个非负整数 ,表示每个人的耐心上限。
输出
输出一行一个非负整数,表示能够录用至少 人的排列 的数量对 取模后的结果。
输入样例
3 2
101
1 1 2
输出样例
2
提示
【样例 1 解释】 共有以下 种面试的顺序 能够让小 Z 和小 H 录用至少 人:
- ,依次录用编号为 的人和编号为 的人;
- ,依次录用编号为 的人和编号为 的人。 【样例 2 输入】
10 5 1101111011 6 0 4 2 1 2 5 4 3 3
【样例 2 输出】
2204128
【数据范围】 对于所有测试数据,保证: • ; • 对于所有 ,均有 ; • 对于所有 ,均有 。
| 测试点编号 | n ≤ | m | 特殊性质 |
| 1,2 | 10 | ≤n | 无 |
| 3 ∼ 5 | 18 | ||
| 6 ∼ 8 | $10^2$ | A | |
| 9 ∼ 11 | 无 | ||
| 12 ∼ 14 | 500 | =1 | |
| 15 | =n | ||
| 16,17 | ≤n | A | |
| 18 ∼ 21 | B | ||
| 22 ∼ 25 | 无 |
评测数据说明
本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共7个测试点,非原站或官方原始数据。总分100分。