张江鹏 • 10个月前
#include<bits/stdc++.h>
using namespace std;
struct bw {
double w,v;//w重量,v价值
};
bool cmp(bw a,bw b) {
return a.v/a.w>b.v/b.w;
}
int main() {
int n,m;//先m重量,再n价值
double sum=0;
cin>>n>>m;
bw a[n];
for(int i=0; i<n; i++) {
cin>>a[i].w>>a[i].v;
}
sort(a,a+n,cmp);
for(int i=0; i<n; i++) {
if(m>=a[i].w) {
sum+=a[i].v;
m-=a[i].w;
} else {
sum+=m*a[i].v/a[i].w;
m=0;
break;
}
}
printf("%.2lf",sum);
return 0;
}
评论: