妈蛋,在线的时候忘记写greater 了...就说怎么过不了!
#include <iostream>
#include <functional>
#include <algorithm>
#include <vector>
#include <set>
using namespace std;
int main()
{
double m, n, a, b, c, e, x, y, z;
cin >> n >> m >> a >> b >> c >>e >> x >> y >> z;
set<double, greater<double> > pdn;
pdn.insert(x / (a + b));
pdn.insert(y / c);
pdn.insert(z / e);
int price = 0;
for (double d : pdn)
{
if ((d - (x / (a + b))) <= 0.0000001)
{
int min = std::min(n / a, m / b);
price += min*x;
n -= min*a;
m -= min*b;
}
else if ((d - (y / c)) <= 0.0000001)
{
int min = m / c;
price += min*y;
m -= min;
}
else
{
int min = n / e;
price += min*z;
n -= min;
}
}
cout << price;
system("PAUSE");
return 0;
}