众所周知,多线程即并发,就是多个CPU同时运行多个线程来缩短时间和提高效率。为了简化题目,我们取消时间片的概念,即CPU每次都是运行一整个线程,中间不会停止,直至线程结束。现在有 2 个CPU和 n 个线程,已知每个线程需要的时间,请问完成所有线程需要的最短时间。
第一行两个整数 n,表示线程的数量(1 ≤ n ≤ 100)
第二行 n 个整数 ai,表示第 i 个线程所需要的时间(1 ≤ ai ≤ 100)
输出一行一个整数,表示完成所有线程需要的最短时间
3 2 3 2
4 tip: 第一个CPU运行第一个和第三个线程,所需时间为4 第二个CPU运行第二个线程,所需时间为3 因为两个CPU是同时运行的,所以只需要的时间为4