60分,两个样例过不去
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int n, t;
double big[1005][1005];
double b[1005];
double sum = 0;
double ans = 0;
signed main() {
cin >> n >> t;
for (int i = 0; i < n; i++) {
for (int j = 0; j < 2; j++)
cin >> big[i][j];
b[i] = big[i][1] / big[i][0];
ans += big[i][0];
}
if (ans <= t) {
for (int i = 0; i < n; i++) {
sum += big[i][1];
}
printf("%.2lf", sum);
return 0;
}
else {
sort(b, b + n);
int m = n - 1;
for (int i = 0; i < n; i++) {
if (big[i][1] == 0) {
continue;
}
if (big[i][1] / big[i][0] == b[m]) {
if (t-big[i][0] >-0.000001) {
t -= big[i][0];
sum += big[i][1];
m--;
i = 0;
}
else {
sum += b[m] * t;
break;
}
}
}
printf("%.2lf", sum);
return 0;
}
}