理惠女士喜欢做曲奇。她做了
- 对于每个盒子,在其中的曲奇种类应该是不同的
- 对于每个盒子,在其中的曲奇数应该等于如下
个数中的一个:
给定理惠女士做的曲奇的信息和打包的要求,写一个程序确定是否可以把所有曲奇打包。此外,如果可以将所有曲奇打包,你的程序应该输出一种使用最少的盒子的打包方案。
输入格式
第一行一个整数
第二行
第三行一个整数
第四行
输出格式
如果可以将所有曲奇打包并满足条件,第一行输出最少的盒子使用数
如果不可能将所有曲奇打包,输出一行一个整数
样例输入 1
7 1 1 1 1 1 1 1 3 1 2 3
样例输出 1
3 2 1 7 2 2 6 3 3 4 5
在这组样例中,可以按如下方式将
- 将第
种曲奇放进第一个盒子中,每种曲奇放一个 - 将第
种曲奇放进第二个盒子中,每种曲奇放一个 - 将第
种曲奇放进第三个盒子中,每种曲奇放一个
如果你的程序按如上方式输出将被判为正确,因为不可能将这
这组样例满足子任务
样例输入 2
5 5 3 1 2 4 1 4
样例输出 2
-1
在这组样例中,不可能将
这组样例满足子任务
样例输入 3
7 5 4 4 2 1 1 1 2 2 6
样例输出 3
7 6 1 2 3 4 5 6 2 2 1 2 3 1 2 4 1 2 7 1 2 3 2 2 3 2
这组样例满足子任务
数据范围
对于所有输入数据,满足:
详细子任务附加限制及分值如下表所示。
子任务编号 | 附加限制 | 分值 |
---|---|---|
无附加限制 |
时间限制:1s
空间限制:1024 MB