Logo HelloWorld信息学奥赛题库

少儿编程

时间限制:1 s 空间限制:128 MB
Statistics

题目描述

西港饮料公司需要提升销量 —— 疫情封锁后,其销量尚未完全恢复。经理丽贝卡打算推出 “买三赠一” 类型的促销方案。你的任务是编写程序帮助丽贝卡,让顾客能更轻松地了解自己能节省多少钱。

输入格式

输入包含一个产品场景。每个场景的第一行为产品名称,名称由 1 个或多个单词组成,单词间用空格分隔。 场景的第二行为两个整数 PD 和 PC,空格分隔,分别表示产品的单价(美元和美分)。PD 是美元部分(0 到 100 之间,含两端),PC 是美分部分(有效数值)。PD 和 PC 不会同时为 0。 第三行为整数 B,表示 “买满 B 件可获 1 件免费”(B 的范围是 2 到 150,含两端)。 第四行为整数 E,表示后续示例的数量,E 不超过 100。 接下来的 E 行每行包含一个正整数(小于 200),表示顾客计划购买的商品数量。你需要根据促销方案计算顾客能获得的最大节省金额。

输出格式

输出第一行为产品名称,单独占一行。之后为 E 行,对应每个示例,每行格式为: Buy N, pay for P, get F free. Save $D. N 是购买的总数量。 P 是需要付费的数量。 F 是免费的数量(P + F 必须等于 N)。 D 是相比无折扣时节省的金额,格式为d.dd(至少 1 位美元数字,小数点后两位美分数字)。

样例数据

input

Fizzy Orange Juice
3 99
12
4
10
26
40
150

output

Fizzy Orange Juice
Buy 10, pay for 10, get 0 free. Save $0.00.
Buy 26, pay for 24, get 2 free. Save $7.98.
Buy 40, pay for 37, get 3 free. Save $11.97.
Buy 150, pay for 139, get 11 free. Save $43.89.

说明

购买 10 件:需全额付费,因为折扣从买满 12 件开始。

购买 26 件:买 12 件付 12 件的钱获 1 件免费,再买 12 件付 12 件的钱获 1 件免费(共付 24 件,获 2 件免费)。

购买 40 件:买 36 件(3 个 12 件)付 36 件的钱获 3 件免费,再单独买 1 件(共付 37 件,获 3 件免费)。

购买 150 件:买 132 件(11 个 12 件)付 132 件的钱获 11 件免费,再单独买 7 件(共付 139 件,获 11 件免费)。注意:若买 144 件获 12 件免费,顾客会得到过多商品且花费更高。