文章
74
粉丝
0
获赞
184
访问
20.0k
 
#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;
}
登录后发布评论
暂无评论,来抢沙发