有佬帮我看看么,全改double了,寄第二个属实抽象
#include<iostream>
using namespace std;
#include<vector>
#include<unordered_map>
#include<algorithm>
int main() {
double n, t;
cin >> n >> t;
vector<double>f;
unordered_map<double, int>mp;
for (int i = 0;i < n;i++) {
double w, v;
cin >> w >> v;
double x = 1.0*v / w;
mp[x] = w;
f.push_back(x);
}
double sum=0;
sort(f.begin(), f.end());
for (int i = f.size() - 1;i >= 0;i--) {
if (t > mp[f[i]]) {
sum += f[i] * mp[f[i]];
t -= mp[f[i]];
}
else {
sum += t *f[i];
break;
}
}
printf("%.2f", sum);
return 0;
}