题目背景
有些店铺设有会员,他们可以优惠或尊享一些商品。
题目描述
共有n家店铺,小乐都是会员。小乐共要买m种物品,分别是a1,a2,……,am。物品名称不超过30个字符。接下来是n个店铺。每一个店铺的名称不超过30个字符。每个店铺对应的接下来的m+1行,第1至m行对应为该店铺a1,a2,……,am的价格,下一行两个数字x, y,表示会员满x元降价y元,保证y不大于x。算出小乐在哪家店里花的钱最少就能买到他想要的所有物品。
输入格式
第一行n, m。
接下来m行,每行一个ai,代表小乐想要的东西。
接着n个店铺,每个店铺对应的接下来的m+1行,从第一到第m行对应为该店铺a1,a2,……,am的价格,下一行两个数字x, y,表示满x元降价y元。
输出格式
输出最便宜的那家店的名称,及其需要花的钱,中间用空格隔开。
输入样例
2 3
MeadowFreshMilk
apple
clock
sam's
299
69
199
400 100
Wumart
299
59
159
800 700
输出样例
sam's 467
本题为计算类。
输入后进行相加,接下来判断是否满x元,如果是,和减去y元。
打擂更新最小值,最后输出。
代码:
#include <bits/stdc++.h>
using namespace std;
string s, ss;
int n, m, x, y, minn;
int main () {
cin >> n >> m;
for (int i = 1; i <= m; i++) cin >> s;
minn = 1e9;
for (int i = 1; i <= n; i++) {
int sum = 0;
cin >> s;
for (int k = 1; k <= m; k++) {
cin >> x;
sum += x;
}
cin >> x >> y;
if (sum >= x) sum -= y;
if (sum < minn) {
minn = sum;
ss = s;
}
}
cout << ss << " " << minn;
return 0;
}