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