文章
35
粉丝
134
获赞
55
访问
24.6k
#include <bits/stdc++.h>
using namespace std;
struct node{
double m,w;
}arr[1002];//不超1000,故定义刚超过1000的大小
int cmp(node a,node b){
return a.m/a.w > b.m/b.w;
}
int main(){
int x,n;
while(cin>>x>>n){
if(x==-1&&n==-1) break;
for(int i=0;i<n;i++){
cin>>arr[i].m>>arr[i].w;
}
sort(arr,arr+n,cmp);//sort函数 默认升序排列 加cmp降序
double result = 0;
for(int i=0;i<n;i++){
if(arr[i].w<=x){
result+=arr[i].m;
x-=arr[i].w;
}else{
result += (arr[i].m/arr[i].w) *x;
break;
}
}
printf("%.3f\n",result);
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发