#HT1040. 队列等待

队列等待

题目描述

桃子和妈妈去商店购物,与此同时她也在思考这样一个问题——如何提高商店的服务效率。

商店里有 nn 位顾客排成一队等待买单。商店的服务员需要花费 tit_i 的时间为第 ii 位顾客服务。

为了方便描述,接下来我们用 “服务时间” 来表示服务员服务某位顾客的时间,即:第 ii 位顾客的服务时间为服务员服务第 ii 位顾客的时间 tit_i

对于任意一位顾客,如果他在队列中的等待时间大于他的服务时间,他就会对商店的服务不满意(否则,就是满意的)。

顾客等待的时间等于队列中排在他前面的所有顾客的服务时间之和。

桃子认为,如果我们改变一下队列中顾客的顺序,是有可能能够减少不满意的顾客人数的。

帮助桃子计算一下:通过任意排列队列中顾客的排队顺序,最多能够让多少顾客感到满意。

输入格式

输入的第一行包含一个整数 n(1n105)n(1 \le n \le 10^5),表示顾客人数。

输入的第二行包含 nn 个整数 t1,t2,,tn(1ti109)t_1, t_2, \ldots, t_n(1 \le t_i \le 10^9),两两之间以一个空格分隔,分别表示每一位顾客的服务时间。

输出格式

输出一个整数,表示通过任意排列队列顺序最多能够让多少顾客满意。

样例

5
15 2 1 5 3
4
5
12 3 1 2 6
5
5
1 2 3 4 5
3

样例解释

  • 样例1:一种合法的排列是 1,2,3,5,151,2,3,5,15,只有服务时间为 55 的顾客会不满意;
  • 样例2:一种合法的排列是 1,2,3,6,121,2,3,6,12,所有人都满意;
  • 样例3:一种合法的排列是 1,2,3,4,51,2,3,4,5,其中服务时间为 4,54,5 的顾客会不满意。

数据范围

  • 对于 20%20\% 的数据,1n101 \le n \le 10
  • 对于 40%40\% 的数据,1n1001 \le n \le 100
  • 对于 60%60\% 的数据,1n1000,1ti1061 \le n \le 1000, 1 \le t_i \le 10^6
  • 对于 80%80\% 的数据,1n1041 \le n \le 10^4
  • 对于 100%100\% 的数据,1n105,1ti1091 \le n \le 10^5, 1 \le t_i \le 10^9