P5429. 面试官无冲突组题
场次:2026年9月11日-非AI方向 · 来源:CodeFun2000 P5429
题目描述
出题官要编一套算法题。现有 个知识点模块可供调用,模块各自带着互不重复的编号(取值 到 )以及一项难度系数。
调用这些模块拼成一道题时,须遵守下列约定:
- 模块选择:在共计 个模块里取出 个,用来构成该题
- 顺序排列:已取出的 个模块须依编号从小到大排好
- 冲突检测:紧挨着的两个模块禁止出现「知识冲突」。两模块编号相减后取绝对值,只要不大于 ,就判定为冲突
- 难度约束:已取出的 个模块,其难度系数加总后必须落在闭区间 里
请枚举全部符合上述约定的组题方案。
输入格式
- 首行给出五个整数
- :模块一共有多少个()
- :取出几个模块()
- :判定冲突用的阈值()
- :难度加总的下限()
- :难度加总的上限()
- 次行给出 个整数,即各模块的难度系数( 难度系数 )
输出格式
- 首行打印符合约定的方案个数
- 个数一旦为正,再按字典序打印至多前 份方案(一份占一行,模块编号之间以空格隔开)
示例
示例 1
输入:
6 3 1 8 16
4 2 5 3 6 1
输出:
3
1 3 5
1 3 6
1 4 6
说明:
- 编号依次为 到 ,对应难度系数
- 取出 个模块,紧邻编号差必须大于 ,难度加总落在
- 间隔够格的三元组里:
- :合法,加总
- :合法,加总
- :合法,加总
- :间隔够,但加总 ,低于下限
- 因而合法方案共 份,按字典序即上面三行