#include<bits/stdc++.h>
using namespace std;
struct kw{
int w,v;
double p;
}t[105];
bool cmp(kw a,kw b){
return a.p>b.p;
}
void work() {
int i,j;
int l,s,sum=0;
double money=0;
memset(t,0,sizeof(t));
cin>>l>>s;
for(i=1;i<=s;i++) {
cin>>t[i].w>>t[i].v;
t[i].p=(double)t[i].v/t[i].w;
}
sort(t+1,t+1+s,cmp);
for(i=1;i<=s;i++) {
if(sum+t[i].w>l) {
money+=(l-sum)*t[i].p;
sum=l;
break;
}
if(sum+t[i].w<=l) {
sum+=t[i].w;
money+=t[i].v;
}
}
printf("%.2f",money);
}
int main() {
freopen("Island.in","r",stdin);
freopen("Island.out","w",stdout);
work();
return 0;
}自己改一下
【无@penglingzhiyuan 14题答案给你标题】
于 2023-07-21 14:12:12 首次发布