1280短信套餐

来源:互联网 发布:如何制作二维码软件 编辑:程序博客网 时间:2024/04/29 04:21

题目描述

某通信公司为推广手机短信,提出了短信套餐优惠政策。
用户必须选择一种短信套餐,且只能选择一种。每种套餐的形式为:每月交p元,可以发送免费短信f条。如果超过了f条,则超过的部分按每条a元收费。
现在你已经预知下个月需要发送m条短信。这家公司的短信套餐种类太多了,请你编个程序告诉他选择最省钱的短信套餐需要交多少钱?

输入

输入有多组数据。每组数据第一行为整数n和m,用一个空格隔开,分别是套餐的种类数和下月短信条数。1<= n<=1000,0<=m<=10000 下一行有一个实数a,表示超过的部分按每条a元收费。(0 <= p <= 100, 1 <= f <= 10000)
输入数据以0 0结尾。


输出

对每组输入数据,输出采用最省钱的短信套餐需交的费用。保留小数点后两位数。

示例输入

5 222 0.1 10 120 15 200 20 300 30 500 50 1000 2 451 0.2 55.50 800 33.30 400 0 0

示例输出

17.20 43.50


#include <stdio.h>
int main()
{
    int n, m, f, i;
    double fee, p, t, min;
    while (scanf("%d %d", &n, &m)==2 && (n||m)){
        scanf("%lf", &fee);
        n--;
        scanf("%lf %d", &p, &f);
        min = p;
        if (m > f) min += (m-f)*fee;
        while (n--){
            scanf("%lf %d", &p, &f);
            t = p;
            if (m > f) t += (m-f)*fee;
            if (t < min) min = t;
        }
        printf("%.2lf\n", min);
    }
    return 0;
}
0 0
原创粉丝点击