学校为比赛准备了 n 件纪念品,第 i 件的价格是 p_i。现在要把它们装袋发给选手:
请问最少需要多少个袋子?
一行一个整数,表示最少需要的袋子数量。
6 100 90 20 20 30 50 60
4
4 10 5 5 5 5
2
90 单独一袋;20 + 60 一袋;20 + 50 一袋;30 单独一袋,共 4 袋。
每两件装一袋,2 袋。
1 \le n \le 100000;1 \le w \le 10^9;1 \le 价格 \le w
排序;贪心思想;双指针扫描。
先把价格从小到大排序。每次看最贵的和当前最便宜的:两件能装进一个袋子就一起装(袋子数 +1,两个指针都往中间收),装不下就说明最贵的那件只能单独一袋(袋子数 +1,只移动贵的指针)。