P13646 [NOISG 2016] LunchBox
题目描述
你是一家餐馆的经理。你准备了 $N$ 个饭盒,希望分发给一些学校。假设有 $m$ 所学校且第 $i$ 所学校需要 $k_i$ 个午餐盒。你的目标是将午餐盒分发到尽可能多的学校。同时,你有一个规则。对于第 $i$ 所学校,你要么不提供餐盒,要么必须提供 $k_i$ 个午餐盒。你能写一个程序来找到可以接收午餐盒的学校的最大数量吗?
输入格式
程序必须从标准输入中读入。第一行两个正整数 $N$ 和 $m$,然后有 $m$ 行,除去第一行的第 $i$ 行有一个整数表示 $k_i$。
输出格式
您的程序必须向标准输出输出一行包含仅一个整数,表示能满足要求的学校的最大数量。
说明/提示
### 样例解释
在这个样例中,答案是 $3$,因为 $3 + 4 + 2 \leq 10$ 且 $3 + 9 + 4 + 2 > 10$。
### 子任务
每个测试数据的时限为 $0.5$ 秒。您的程序将在满足以下限制的输入数据上进行测试:
| 子任务 | 分值 | 限制 |
|:-------:|:-----:|:------------:|
| 1 | 20 | 每组输入数据满足 $m = 1$, $0 < N \leq 60000$ 且 $0 < k_i \leq 30000$。 |
| 2 | 30 | 每组输入数据满足 $0 < m \leq 1000$, $0 < N \leq 60000$ 且 $0 < k_i \leq 1000$。 |
| 3 | 50 | 每组输入数据满足 $0 < N,m \leq 60000$ 且 $0 < k_i \leq 30000$。 |