文章

35

粉丝

134

获赞

55

访问

25.4k

头像
喝饮料 题解:c++版 sort函数 结构体数组
P1478 云南大学机试题
发布于2024年1月11日 21:37
阅读数 759

#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;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发