贪心问题
看了别人的代码,利用类来解决会让代码看起来简洁一点
#include<iostream>
#include<iomanip>
using namespace std;
struct room{
double catfood;
double javabean;
double perfor;
};
int main(){
room rm[1001],temp;
int m,n;
double sum;
while(cin>>m>>n){
if(m==-1&&n==-1)
break;
for(int i=0;i<n;i++){
cin>>rm[i].javabean>>rm[i].catfood;
rm[i].perfor=rm[i].javabean/rm[i].catfood;
}
sum=0;
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
if(rm[i].perfor<rm[j].perfor){
temp=rm[i];
rm[i]=rm[j];
rm[j]=temp;
}
for(int i=0;i<n;i++){
if(m>=rm[i].catfood){
sum+=rm[i].javabean;
m-=rm[i].catfood;
}
else{
sum+=rm[i].perfor*m;
break;
}
}
printf("%.3lf\n",sum);
}
return 0;
}