求助!
查看原帖
求助!
1054257
AndyCGM楼主2023/9/24 13:08
#include <bits/stdc++.h>
using namespace std;
struct Node{
    int w,v;
    double x;
}a[105];
bool cmp(Node a, Node b){
    return a.x > b.x;
}
int main(){
    int w,s;
    cin >> w >> s;
    for (int i=0; i<s; i++){
        cin >> a[i].w >> a[i].v;
        a[i].x=a[i].v*1.0/a[i].w;
    }
    sort(a,a+s,cmp);
    double ans=0;
    for(int i=0; i<s; i++){
        if (a[i].w<=w){
            w-=a[i].w;
            ans+=a[i].v;
        }else{
            ans+=w*a[i].x;
            break;
        }
	}
    printf("%.2lf\n",ans);
    return 0;
}

2023/9/24 13:08
加载中...