文章

13

粉丝

0

获赞

9

访问

353

头像
组队刷题 题解:
P1307
发布于2026年2月12日 21:35
阅读数 79

#include <bits/stdc++.h>
using namespace std;

struct timu{
    int w;
    int m;
    double xiaolv;

    bool operator <(const timu& b)const{
        return xiaolv>b.xiaolv;
    }
};

int main(){
    int mt,n;
    while(cin>>mt>>n&&mt!=-1&&n!=-1){
        double sum=0;
        timu tis[n];
        for(int i=0;i<n;i++){
            cin>>tis[i].w>>tis[i].m;
            tis[i].xiaolv=(double)tis[i].w/tis[i].m;
        }
        sort(tis,tis+n);
        for(int i=0;i<n;i++){
            if(mt>=tis[i].m){
                mt-=tis[i].m;
                sum+=tis[i].w;
            }
            else{
                sum+=mt*tis[i].xiaolv;
                break;
            }
        }
        printf("%.3lf\n",sum);
    }
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发