贪心算法小应用~
代码:
#include <iostream>
#include<algorithm>
using namespace std;
struct trade{
double javaBean;
double catFood;
double value;
bool operator <(const trade &a)const{
return value>a.value;
}
}t[1001];
int main()
{
double m;
int n;
while(cin>>m>>n){
if(m==-1&&n==-1)
break;
for(int i=0;i<n;i++){
cin>>t[i].javaBean>>t[i].catFood;
t[i].value=t[i].javaBean/t[i].catFood;
}
sort(t,t+n);
double s=0;
int index=0;
while(m>0&&index<n){
if(m>t[index].catFood){
s+=t[index].javaBean;
m-=t[index].catFood;
}
else{
s+=m*t[index].value;
m=0;
}
index++;
}
cout<<s<<endl;
}
return 0;
}
/*
5 3
7 2
4 3
5 2
20 3
25 18
24 15
15 10
-1 -1
*/