文章
211
粉丝
0
获赞
1130
访问
38.3k
#include<bits/stdc++.h>
using namespace std;
struct node{
double w,m;
};
bool cmp(node a,node b){
return a.m*b.w < b.m*a.w;
}
int main(){
int m,n;
while(cin >> m >> n){
if(m == -1 && n == -1)
break;
vector<node> g;
for(int i=0;i<n;i++){
double wi,mi;
cin >> wi >> mi;
g.push_back({wi,mi});
}
sort(g.begin(),g.end(),cmp);
double sum = 0;
for(int i=0;i<n;i++){
if(m >= g[i].m){
sum += g[i].w;
m -= g[i].m;
}
else{
sum += m*g[i].w/g[i].m;
break;
}
}
cout << fixed << setprecision(3) << sum << endl ;
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发