FatMouse‘ Trade hdu-1009 C++
阿新 • • 發佈:2021-01-18
#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
struct MyStruct1
{
int j, f; //JavaBean 、 貓糧
double value; //綜合價值
}Trade[1005];
//價值降序排序
bool cmp(MyStruct1 m1,MyStruct1 m2)
{
return m1.value > m2.value;
}
int main()
{
int m, n;
double mao,sum;
while (cin>>m>>n && m!=-1&&n!=-1)
{
for (int i = 0; i < n; i++)
{
cin >> Trade[i].j >> Trade[i].f;
Trade[i].value = (1.0*Trade[i].j / Trade[i].f);
}
sort(Trade,Trade+n,cmp) ;
mao = 0.0;//已經換的貓糧數目
sum = 0.0;//換到的Java豆
for (int i = 0; i < n; i++)
{
if (mao<=m)
{
if (mao + Trade[i].f <= m)
{
mao += Trade[i].f;
sum += Trade[i].j;
}
else
{
sum += (m - mao)*Trade[i].value;
mao = m;
}
}
else
{
break;
}
}
cout << setprecision(3) << fixed<<sum << endl;
}
return 0;
}