洛谷 会员尊享

题目背景

有些店铺设有会员,他们可以优惠或尊享一些商品。

题目描述

共有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;
}

猜你喜欢

转载自blog.csdn.net/Runcode8/article/details/130668191
今日推荐