4806: 【GESP2512一级】小杨的爱心快递

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述

小杨是“爱心社区”的小志愿者,每周他都会帮助邻居们寄送捐赠给山区小学的文具和书籍。快递公司为了支持公益行动,制定了特殊的运费规则,鼓励大家合理包装:

假设快递的体积为 ,重量为 。

按体积计算:运费按体积计算,公式是 元。

按重量计算:为了鼓励减轻包裹重量,规则是:当重量小于 克,即 时,运费为 元;当重量达到或超过 克,即 时,运费为 元。

快递公司的叔叔说:“我们应该选择最公平合理的计费方式。”

所以,最终的运费会取按体积计算和按重量计算这两种方式中价格较低的那一个,这样对寄件人最公道。

输入

四行,每行一个一位小数的浮点数,分别代表,快递的体积 ,快递的重量 ,第一档重量运费 ,第二档重量运费 。

输出

一行一个一位小数,代表实际快递运费。

样例输入 复制

100.4
300.2
60.6
70.5

样例输出 复制

50.2

提示

输入样例 2

99.8
200.9
60.2
70.1

输出样例 2

49.9

样例解释

对于样例 1:快递体积 为 ,重量 为 ,第一档重量运费 为 ,第二档重量运费 为 。

– 若按体积收费,费用为 ;

– 若按重量收费,由于重量 超过 ,费用为 。

输出价格较低的 。

对于样例 2:快递体积 为 ,重量 为 ,第一档重量运费 为 ,第二档重量运费 为 。

若按体积收费,费用为 ;

– 若按重量收费,由于重量 小于 ,费用为 。

输出价格较低的 。

数据范围

对于所有测试点,保证给出的浮点数不超过 。


#include <iostream>
#include <iomanip>
using namespace std;
int main() {
    double V, G, M, N;
    scanf("%lf%lf%lf%lf", &V, &G, &M, &N);
    double P_V = V / 2.0;
    double P_G = (G < 300) ? M : N;
    double result = (P_V < P_G) ? P_V : P_G;
    printf("%.1f\n", result);
    return 0;
}