題目鏈接: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;
}