题解 AT5758 【Nice Shopping】

Zirnc

2020-03-12 12:05:30

Solution

[ChungZH's blog](https://chungzh.cn/) · [ChungZH's portfolio](https://chungzh.cc/) ## 题目 您正在逛一家大型电子产品商店,购买冰箱和微波炉。 这家商店出售 $A$ 类冰箱和 $B$ 类微波炉。第 $i$ 台冰箱 $(1 \le i \le)$ 以 $a_i$ 日元出售,第 $j$ 个微波炉 $(1 \le j \le B)$ 售价为 $b_j$ 日元。 您有 $M$ 张优惠票。使用第 $i$ 张票 $(1 \le i \le M)$,当一起购买第 $x_i$ 个冰箱和第 $y_i$ 个微波炉时,您可以从总价格中获得 $c_i$ 日元的折扣。一次只能使用一张票。 您打算购买一台冰箱和一台微波炉。 找到所需的最低金额。 ## 题解 模拟模拟模拟。 首先找到最便宜的冰箱和微波炉的总价,然后输入 $M$ 张优惠券的信息,比较哪个便宜,计入变量,最后输出。 ```cpp #include <bits/stdc++.h> using namespace std; int A, B, M; int main() { cin >> A >> B >> M; int a[A], b[B]; int minA = 1e9; int minB = 1e9; for (int i = 0; i < A; i++) { cin >> a[i]; minA = min(minA, a[i]); } for (int i = 0; i < B; i++) { cin >> b[i]; minB = min(minB, b[i]); } int ans = minA + minB; int x, y, c; for (int i = 0; i < M; i++) { cin >> x >> y >> c; x--; y--; ans = min(ans, a[x] + b[y] - c); } cout << ans << endl; return 0; } ```