问题 3752 --减肥(完善程序)

3752: 减肥(完善程序)★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 148  解决: 103
[提交][状态][命题人:]

题目描述

刘同学终于下定决心要减肥,但是不吃饱怎么有力气减肥呢,他希望在吃饱的同时,尽量少摄入热量。现在有若干种食品,每种食品有不同的单位热量和单位饱腹感,为了营养均衡,每种食品都有摄入量限制,请你来帮他设计一份食谱吧。

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n, m;
struct food
{
    int vol, clr, limit; //饱腹感、热量、限制
} f[100];

bool cmp(food a, food b)
{
    return (a.clr * 1.0 / a.vol) < ___(1)___;
}

int main()
{
    cin >> n >> m;
    for (int i = 0; i < m; i++)
    {
        cin >> f[i].vol >> f[i].clr >> f[i].limit;
    }
    ___(2)___;
    double clrsum = 0; //热量总和
    int vsum = 0; //饱腹感总和
    for (int i = 0; i < m; i++)
    {
        if (f[i].limit * f[i].vol < n - vsum)//没吃饱
        {
            vsum += _____(3)______;
            clrsum += f[i].clr * f[i].limit;
        }
        else//吃饱了
        {
            clrsum += ___(4)___;
            break;
        }
    }
    printf("%.2f\n", clrsum);
    return 0;
}

输入

第一行两个整数,分别是n,m,m<100,n表示刘同学吃饱所需的饱腹感,m表示食品的种类数量。
接下来有m行,每行三个整数,分别代表该食物的单位饱腹感、单位热量和摄入量限制。

输出

保证刘同学吃饱的前提下,所需摄入的最少热量(保留2位小数)。数据保证所有食物提供的饱腹感不小于n。
样例输入
Copy
5
2
3 1 1
3 4 1
样例输出
Copy
3.67

提示

来源

[提交][状态]