Code:
#include<bits/stdc++.h>
using namespace std;
struct gold
{
int V,W;
float V_W;
}cbd[150];
bool cmp_big(gold a,gold b)
{
return a.V_W>b.V_W;
}
inline void print(float V)
{
printf("%.2f",V);
}
int main()
{
int m,t;
cin>>m>>t;
for (int i = 0; i < m; i++)
{
cin>>cbd[i].V>>cbd[i].W;
cbd[i].V_W=cbd[i].V/cbd[i].W;
}
sort(cbd,cbd+m,cmp_big);
float out_V,SX=t;
for (int i = 0; i < m; i++)
{
if (out_V+cbd[i].V<=t)
{
SX-=cbd[i].V;
out_V+=cbd[i].V;
}
else
{
out_V+=SX*cbd[i].V_W;
print(out_V);
return 0;
}
}
}