题目描述
贝西工作勤勤恳恳,她每月向约翰索要C 元钱作为工资。约翰手上有不少钱,他一共有N 种面额的钞票。第i 种钞票的面额记作Vi,约翰有Ki 张。钞票的面额设定是比较合理的,保证所有大面额的钞票都是所有小面额钞票的整数倍。假设约翰每个月给贝西发一次工资,那么这些钱够发几个月的工资呢?贝西不会找零,如果约翰发的钱大于C 元,多余的部分就算是贝西的奖励了。
输入输出格式
输入格式:
第一行:两个整数N 和C,1 ≤ N ≤ 20, 1 ≤ C ≤ 109
第二行到第N + 1 行:第i + 1 行有两个整数Vi 和Ki,1 ≤ Vi ≤ 109; 1 ≤ Ki ≤ 106
输出格式:
单个整数:表示约翰最多能给贝西发几个月的工资
输入输出样例
输入样例#1:
3 6
10 1
1 100
5 120
输出样例#1:
111
说明
第一个月先给一张十元的,接下来十个月每个月都给两张五元的,最后一百个月每月给一张一元的和一张五元的。
思路:考虑到所有钞票面值都是倍数关系,所以根据贪心策略,先把面值大于C的钞票花出去,不会使答案更差。对于面值小于C的钞票,先用较大面值的钞票凑,若最后超过了C,尽量选择小面值的钞票。
题解: