zz决定将所有剩余的苏打水倒入最少数量的瓶子中,而且他必须尽快完成。将 1 单位水从一个瓶子转移到另一个瓶子所消耗时间为 1 秒,且可以进行无限次转移。
求储存所有水所需最小瓶子数 k 以及该情况下所用最小时间 t。
k - 存放所有剩余苏打水的最少瓶子数量
t - 将苏打水倒入 k 个瓶子的最短时间。
注意一个瓶子不能储存比它的体积更多的苏打水。应保存所有剩余的苏打水。
第一行包含正整数 n (1≤n≤100) - 瓶子的数量。
第二行包含 n 个正整数 a1,a2,...,an (1≤ai≤100),其中 ai 是第 i 个瓶子中剩余的苏打水量。
第三行包含 n 个正整数 b1,b2,...,bn (1≤bi≤100),其中 bi 是第 i 个瓶子的体积。
保证任意 i 的 ai≤bi。
唯一的一行应该包含两个整数 k 和 t,其中 k 是可以存储所有苏打水的最少瓶子数,t 是将苏打水倒入 k 个瓶子的最短时间。
4 3 3 4 3 4 7 6 5
2 6
2 1 1 100 100
1 1
5 10 30 5 6 24 10 41 7 8 24
3 11
注意
在第一个例子中,尼克可以将苏打水从第一瓶倒到第二瓶。这将需要 3 秒钟。之后,第二瓶将包含 3+3=6 单位的苏打水。然后他可以从第四瓶倒到第二瓶和第三瓶:一个单位倒到第二个瓶子,两个单位倒到第三个瓶子。这将需要 1+2=3 秒。所以,所有的汽水都会装在两个瓶子里,他会花 3+3=6 秒来做这件事。
4
3 3 4 3
4 7 6 5
2 6