0
已解决
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
struct zhu{
int s,v;
double p;
}a[10001];
bool cmp(zhu a,zhu b){
return a.p>b.p;
}
int main()
{
int n,t;
double ans=0;
cin>>n>>t;
for(int i=1;i<=n;i++){
cin>>a[i].s>>a[i].v;
a[i].p=a[i].v*1.0/a[i].s;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<a[i].s;
}
for(int i=1;i<=n;i++){
if(t>=a[i].s){
ans+=a[i].v;
t-=a[i].s;
}
else{
ans+=a[i].p*t;
break;
}
}
printf("%.2f",int(ans*100+0.5)/100.0);
return 0;
}
哪错了