文章
34
粉丝
0
获赞
6
访问
1.1k
#include<bits/stdc++.h>
using namespace std;
struct Node {
int cnt;
int cost;
} node[1005];
int main() {
int m, n;
while (cin >> m >> n) {
if (m == -1 && n == -1) break;
for (int i = 0; i < n; i++) {
cin >> node[i].cnt >> node[i].cost;
}
sort(node, node + n, [](Node a, Node b) {
return 1.0 * a.cost / a.cnt < 1.0 * b.cost / b.cnt;
});
double ans = 0;
for (int i = 0; i < n; i++) {
if (m < node[i].cost) {
ans += m * (1.0 * node[i].cnt / node[i].cost);
break;
} else {
m -= node[i].cost;
ans += node[i].cnt;
}
}
printf("%.3lf\n", ans);
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发