测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A21375. 制作饮品(drink.cpp)

填空题 中等

题目描述

制作饮品(drink.cpp)

题目描述

圣诞节快到了,有 n 名同学参加一项联欢活动,为了丰富活动内容,组织者增加了一个自制饮品的环节。在这个环节中,活动策划者准备了一些原料,要求每名同学恰好制作 x 杯指定规格的饮品。你的任务是根据给定的原料数量,确定 x 的最大值。

活动策划者准备的原料有:k 瓶饮料,每瓶饮料 l 毫升;c 个柠檬,每个柠檬切成了 d 片;p 克食盐。饮品的指定规格为:每杯饮品包含 v₁毫升饮料、1 片柠檬和 p₁克食盐。

输入描述

在一行中给出 8 个正整数 n、k、l、c、d、p、v₁、p₁,这些数均不小于 1 且不超过 100,两两之间用一个空格分隔。

输出描述

输出 x 的最大值(即每名同学最多能制作的饮品杯数)。

样例输入1

3 4 5 10 8 100 3 1

样例输出1

2

样例输入2

5 100 10 1 1 990 4 3

样例输出2

3

样例输入3

10 1000 1000 25 23 150 1

样例输出3

0

参考答案

#include <iostream> #include <algorithm>  // 单独引入min所需的头文件(避免用bits/stdc++.h) usingnamespacestd; int main() {     // 变量含义注释(提升可读性)     int n;  // 每份所需的材料数量     int k, l;  // k瓶饮料,每瓶l升     int c, d;  // c个柠檬,每个切d片     int p;     // 盐的总克数     int v1;    // 每份饮料需要的升数     int p1;    // 每份需要的盐克数     // 输入数据     cin >> n >> k >> l >> c >> d >> p >> v1 >> p1;     // 计算每种材料能做的份数(注意:这里需要向上取整,原代码是向下取整,可能不符合实际需求)     int drink = (k * l + v1 - 1) / v1;  // 饮料总量(k*l升) ÷ 每份所需升数v1 → 向上取整     int lemon = c * d;                  // 柠檬总片数(每片对应1份)     int salt = p / p1;                  // 盐能做的份数     // 三种材料中最少的份数,再除以每份需要的材料数n,得到最终能做的份数     int total =min(min(drink, lemon), salt) / n;     cout << total << endl;     return0; }
上一题 下一题