CodeM 第一题 下单

美团在吃喝玩乐等很多方面都给大家提供了便利。最近又增加了一项新业务:小象生鲜。这是新零售超市,你既可以在线下超市门店选购生鲜食品,也可以在手机App上下单,最快30分钟就配送到家。
新店开张免不了大优惠。我们要在小象生鲜超市里采购n个物品,每个物品价格为ai,有一些物品可以选择八折优惠(称为特价优惠)。
有m种满减优惠方式,满减优惠方式只有在所有物品都不选择特价优惠时才能使用,且最多只可以选择最多一款。
每种满减优惠描述为(b i,c i),即满b i减c i(当消费>=b i时优惠c i)。
求要买齐这n个物品(必须一单买齐),至少需要多少钱(保留两位小数)。

输入描述:

第一行,两个整数n,m。
接下来n行,每行一个正整数ai,以及一个0/1表示是否可以选择特价优惠(1表示可以)。
接下来m行,每行两个正整数b i,c i,描述一款满减优惠。
1 <= n,m <=10
1 <= a <= 100 1 <= c < b <= 1000

输出描述:

一行一个实数,表示至少需要消耗的钱数(保留恰好两位小数)。
#include <iostream>
#include <cstdio>

using namespace std;

int main(){ 
    int n = 1;
    int m = 1;
    double countSale = 0;//特价总计
    double count = 0;//商品总计
    double countAr = 0;//优惠券价格
    cin >> n >> m; 
    for(int i = 0; i < n; i++){
        int a = 1;
        int x = 1;
        scanf("%d",&a);
        scanf("%d",&x);
 
        if (x == 1){
            countSale += 0.8*a;
        }else{
            countSale += a;
        }
        count += a;
    }
    countAr = count;
    for(int i = 0; i < m; i++){ 
        int bi = 1;
        int ci = 1;
        scanf("%d",&bi);
        scanf("%d",&ci); 
        if (bi <= count && (count - ci) < countAr){ 
                countAr = count - ci; 
        }
    }
    if (countAr > countSale){
        printf("%.2f\n",countSale);
    }else{
        printf("%.2f\n",countAr);
    }
    return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值