#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;
int main()
{
double n, t;
double get = 0;
cin >> n >> t;
vector<double>val(n);
vector<double>m(n);
vector<double>v(n);
for (int i = 0; i < n; i++)
{
cin >> m[i]>>v[i] ;
val[i] = v[i] / m[i];
}
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - 1 - i;j++)
{
if (val[i] < val[i + 1])
{
int temp = val[j];
val[j] = val[j + 1];
val[j + 1] = temp;
int tem = m[j];
m[j] = m[j + 1];
m[j + 1] = tem;
int te = v[j];
v[j] = v[j + 1];
v[j + 1] = te;
}
}
}
for (int i = 0; i < n; i++)
{
if (m[i] <= t)
{
get += v[i];
t -= m[i];
}
else
{
get += t * val[i];
break;
}
}
cout << setiosflags(ios::fixed)<< setprecision(2)<< get;
}
样例过了 试过在第17行val[i] = v[i] / m[i]的v[i]前后以及第46行乘上1.0, 但还是那样 求解答