蛋糕(cake)
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
过生日了,他买了 块蛋糕,第 块蛋糕的大小为 。
喜欢 这个数,所以他买的所有蛋糕的大小一定是 的整数幂,即 ,。
可以用一把刀切蛋糕(切的蛋糕大小必须大于 ),他可以将一块大小为 的蛋糕一分为二切成两块大小为 的蛋糕。
想要选出一些蛋糕送给朋友,但 有强迫症,他想让选出蛋糕的大小之和为 。
由于切蛋糕是需要体力的, 想要知道最少需要切多少次蛋糕使得他能够选出一些蛋糕使得选出蛋糕的大小之和为 。
如果怎样切蛋糕都无法选出一些蛋糕使得选出蛋糕的大小之和为 ,请告诉 不可能(即输出 -1)。
输入格式
从 cake.in 文件中读入数据
第一行输入两个数字 ,分别表示选出蛋糕的大小之和,最初蛋糕的块数。
第二行输入 个整数,第 个整数表示第 块蛋糕的大小 。
输出格式
将数据输出到 cake.out 文件中
共一行,输出一个整数,表示切蛋糕的最小次数,若不可能输出 -1。
10 3
1 1 32
2
样例 1 解释
- 选择大小为 的蛋糕切一刀,变成两块大小为 的蛋糕。
- 选择大小为 的蛋糕切一刀,变成两块大小为 的蛋糕。
可以选出大小分别为 的蛋糕,使得大小之和为 ,故最小次数为 。
20 5
1 1 2 8 16
0
其余样例见下发文件
数据规模与约定
- 对于 的数据,保证 ,,。
- 对于 的数据,保证 。
- 对于另 的数据,保证 。
- 对于另 的数据,保证 。
- 对于 的数据,保证 ,,。