欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Bailian4040 买书问题

程序员文章站 2022-04-01 20:43:00
...

4040:买书问题
总时间限制: 1000ms 内存限制: 65536kB
描述
某网上书店举行优惠促销,现有两种优惠策略。策略一是购书总额大于100元的可享受免费送货。策略二是如果购书数量大于3本,则购书总额享受95折优惠(不包括运费)。两种优惠策略不能同时享受,最多可选择其中一种优惠策略。运费为20元。小明想在这个网站上买书,请帮他选择最优的优惠策略。

输入
有多行,第一行是买书的种类N(0 <= N <= 100),接下来的N行每行输入一种书目的购买数量M和代价P(P不一定是整数)。当N为-1时结束输入
输出
针对每组数据,分析如何享受优惠策略,输出最少的购书支付金额
样例输入
2
2 60
3 50
-1
样例输出
270

问题链接Bailian4040 买书问题
问题简述:(略)
问题分析:简单题不解释。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* Bailian4040 买书问题 */

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    int n;
    while(cin >> n && n != -1) {
        int m, cnt = 0;
        double p, money = 0;
        while(n--) {
            cin >> m >> p;
            cnt += m;
            money += m * p;
        }

        double ans = money;
        if(money <= 100) money += 20;
        if(cnt > 3) ans = ans * 0.95 + 20;
        else ans += 20;
        ans = min(ans, money);

        cout << ans << endl;
    }

    return 0;
}