文章

13

粉丝

171

获赞

8

访问

45.6k

头像
贪心
P1478 云南大学机试题
发布于2023年2月4日 13:15
阅读数 3.4k

#include <iostream>
#include <algorithm>

using namespace std;

struct Drink {
    double mi, wi;//毫升,价格
} dri[1024];

bool cmp(Drink a, Drink b) {
    return (a.wi / a.mi) < (b.wi / b.mi);//按照每毫升价格从小到大排序
}

int main() {
    double x;
    int n;
    while (cin >> x >> n) {
        if (x == -1 && n == -1)
            break;
        for (int i = 0; i < n; i++) {
            double mi, wi;
            cin >> mi >> wi;
            dri[i].mi = mi;
            dri[i].wi = wi;
        }
        sort(dri, dri + n, cmp);
        double sum = 0;
        for (int i = 0; i < n; i++) {//从每毫升价格最便宜的开始买
            if (x - dri[i].wi >= 0) {//钱够把这种饮料全部买下
                sum += dri[i].mi;
                x -= dri[i].wi;
            } else {//钱只够买一部分这种饮料
                sum += (x / (dri[i].wi / dri[i].mi));
                break;
            }
        }
        printf("%.3f\n", sum);
    }
    ret...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发