#include <iostream> #include <vector> using namespace std; typedef struct { int J; int F; double pro; }MES; int main() { int M, N; while (cin >> M >> N) { if (M == -1) break; vector<MES> mes; for (int i = 0; i < N; i++) { MES m; cin >> m.J >> m.F; m.pro = m.J / (double)m.F; mes.push_back(m); } for (int i = 0; i < N; i++) for (int j = 0; j < N - i - 1; j++) if (mes[j].pro < mes[j + 1].pro) swap(mes[j], mes[j + 1]); double sum = 0.0; for (int i = 0; i < N; i++) { if (M - mes[i].F < 0) { sum += M*mes[i].pro; break; } M -= mes[i].F; sum += mes[i].J; } printf("%.3f\n", sum); } return 0; }通过简单排序后即可求解
杭电 OJ 1009 FatMouse' Trade
猜你喜欢
转载自blog.csdn.net/fuwu4087/article/details/80715351
今日推荐
周排行