トピックの背景
一部の店舗には会員がおり、割引や一部の製品への独占アクセスを楽しむことができます。
トピックの説明
合計 n 店舗があり、Xiaole はそのメンバーです。Xiao Le は、合計 m 個のアイテム、つまり a1、a2、...、am を購入したいと考えています。項目名は 30 文字を超えることはできません。続いてn店舗目です。各店舗の名前は 30 文字以内にしてください。各店舗は次の m+1 行に対応し、1 行目から m 行は店舗の価格 a1、a2、...、am に対応し、次の行には 2 つの数字 x、y があり、会員がx 元がいっぱいになり、y が x より大きくならないように、価格は y 元だけ減額されます。Xiao Le が欲しいものをすべて買うのに最もお金をかけない店を見つけてください。
入力フォーマット
最初の行 n、m。
次の m 行には、それぞれの行に AI があり、Xiaole が望んでいることを表します。
次に、n 個の店舗があり、各店舗は次の m+1 行に対応し、最初から m 行目は店舗の価格 a1、a2、...、am に対応し、次の行には 2 つの数値 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元を引きます。
Dale は最小値を更新し、最終的に出力します。
コード:
#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;
}