题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2187
题目大意:给你钱去买米 ,给出多种米和它们的单价和数量,输出能买到的最多的米
题解:和hdu-2111类似,按米的单价从小到大遍历,直到钱花完为止
AC代码:
#include<iostream>
using namespace std;
int main()
{
int c;
cin>>c;
while(c--){
double n;
int m;
cin>>n>>m;
int ans[26] = {0};
int a,b;
double sum = 0;
for(int i = 0;i<m;i++){
cin>>a>>b;
ans[a] += b;
}
for(int i = 1;n>0;i++){
if(ans[i] != 0){
if(n >= ans[i] * i){
n = n-ans[i]*i;
sum += ans[i];
}else{
sum = sum + n/i;
n = 0;
}
}
}
printf("%.2f\n",sum);
}
return 0;
}