Atcoder5758
大致题意
code && 思路
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
// int num[N];
int A, B, M;
int a[N], b[N], fin[N];
int minn, ans;
void init()//初始化进行处理找到所有b的没有使用券时获得的最小值,即找到最小的a,然后再和所有的b分别相加即可
{
minn = a[1]
for(int i = 1; i < A; i++)
minn = min(minn, a[i + 1]);
for(int i = 1; i <= B; i++)
f[i] = b[i] + minn;
return ;
}
int main() {
// freopen("1.txt", "r", stdin);
// freopen("2.txt", "w", stdout);
std::ios::sync_with_stdio(false);
cin.tie(0);
cout .tie(0);
cin >> A >> B >> M;
for(int i = 1; i <= A; i++) cin >> a[i];
for(int i = 1; i <= B; i++) cin >> b[i];
init();
while(t--)
{
int x, int y, int c;
cin >> x >> y >> c;
f[y] = min(f[y], a[x] + b[y] - c);//f[i]保存的是选择的是第i个的微波炉时获得的组合的最小的值
}
ans = 0x3f3f3f;
for(int i = 1;i <= B; i++)
ans = min(ans, f[i]);
cout << ans << endl;
return 0;
}