#include
#include<string.h>
#include
#include<math.h>
using namespace std;
struct node{
double V;//体积
double L;//生命值
}str[105];
bool cmp(node a,node b)
{
return (a.L / a.V)>(b.L / b.V);//1体积水的生命值
}
int main()
{
double v;//水瓶体积
int n;
cin>>v>>n;
//cout<<V<<n<<endl;
for(int i=0;i<n;i++)
cin>>str[i].V>>str[i].L;
double sum=0;
sort(str,str+n,cmp);
for(int i=0;i<n;i++)
{
if(v>=str[i].V){
sum=sum+str[i].L;
v=v-str[i].V;
}else{
sum=sum+(str[i].L * v / str[i].V);
break;
}
}
double ans;
ans = round(sum*100) / 100;
printf("%.2lf\n",ans);
return 0;
}
总结
注意四舍五入