众所周知,多线程即并发,就是多个CPU同时运行多个线程来缩短时间和提高效率。每个线程被分为数个时间长度为正整数 k 的时间片,如果最后一个时间片长度不足 k,则加上等待时间自动补到 k。现在有 n 个线程,已知每个线程需要的时间,请问将所有线程分成不超过 m 个时间片的最小的 k。
第一行两个整数 n 和 m,分别表示线程的数量和拆分时间片的数量(1 ≤ n ≤ 100000,1 ≤ m ≤ 1e9)
第二行 n 个数 ai,表示第 i 个线程的所需时间(1 ≤ ai ≤ 1e9)
输出一行一个整数,表示将所有线程分成不超过 m 个时间片的最小的正整数 k(k ≥ 1),如果无论怎么分都会超过则输出 0
3 4 2 1 1
1