编程题
### 问题描述 小明有 $n$ 个山竹,第 $i$ 个山竹有 $a_i$ 片。小明来到幼儿园门口,决定将这些山竹分给 $k$ 个小朋友。 但是由于山竹是有限的,无法给每个小朋友都分到一个,所以小明将使用以下方法来分割山竹:如果一个山竹或山竹的一部分有偶数片,那么小明可以分为大小相等的两部分,如果是奇数片,则其中一份肯定比另一份多一片。 小明希望要么给每个小朋友一整个,或者一部分(几片),可能会有部分山竹或山竹片留在小明手里不被分出去。 假设 $b_i$ 的第 $i$ 个小朋友最终拥有的片数,小明的目标是使得 $b_i$ 的最小值最大。 ### 输入格式 第一行,输入两个整数 $n,k$,表示山竹的个数和小朋友的个数。 第二行,输入 $n$ 个整数 $a_1,a_2,\dots,a_n$,表示每个山竹的片数。 ### 输出格式 如果无法向每个小朋友赠送,请输出 `NO`,否则请输出最大的 $b_i$ 最小值。 ### 样例输入1 ```text 2 2 6 10 ``` ### 样例输出1 ```text 6 ``` ### 样例输入2 ```text 4 5 1 1 1 1 ``` ### 样例输出2 ```text NO ``` ### 评测数据规模 对于所有评测数据,$1 \leq n \leq 10^6,1 \leq k \leq 2 \times 10^9,1 \leq a_i \leq 10^7$。
查看答案
赣ICP备20007335号-2