很水的题目,就不多做评价了qaq
#include <iostream>
#include <algorithm>
#include <iomanip>
using namespace std;
struct Node
{
float weight;//重量
float value;//总价值
float price;//单价
};
bool cmp(Node a,Node b);
int main()
{
int N;
float T;
cin>>N>>T;
Node a[N+1];
float sum=0;
for(int i=1;i<=N;i++)
{
cin>>a[i].weight>>a[i].value;
a[i].price=a[i].value/a[i].weight;
}
sort(a+1,a+N+1,cmp);
for(int i=1;i<=N;i++)
{
if(T>=a[i].weight)
{
sum+=a[i].value;
T-=a[i].weight;
} else
{
sum+=T*a[i].price;
break;
}
}
cout<<setiosflags(ios::fixed)<<setprecision(2)<<sum<<endl;
return 0;
}
bool cmp(Node a,Node b)
{
return a.price>b.price;
}