小红书8.19第三题为啥只A了82%,求各位大佬帮忙看看
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void Q3() {
int n, m, k;
cin >> n >> m >> k;
vector<int> A(n);
vector<int> H(n);
for (int i = 0; i < n; ++i) {
cin >> A[i];
}
for (int i = 0; i < n; ++i) {
cin >> H[i];
}
vector<vector<pair<int, int>>> g(n);
for (int i = 0; i < m; ++i) {
int u, v, w;
cin >> u >> v >> w;
--u;
--v;
g[u].emplace_back(v, w);
g[v].emplace_back(u, w);
}
uint64_t ans = 0;
int t = k;
uint64_t v = 0;
for (int i = 0; i < n; ++i) {
t -= H[i];
v += A[i];
if (t >= 0) {
for (auto& e1 : g[i]) {
if (e1.first == i) continue;
t -= H[e1.first];
t -= e1.second;
v += A[e1.first];
if (t >= 0) {
for (auto& e2 : g[e1.first]) {
if (e2.first == i || e2.first == e1.first) continue;
t -= H[e2.first];
t -= e2.second;
v += A[e2.first];
if (t >= 0) {
ans = max(ans, v);
}
t += H[e2.first];
t += e2.second;
v -= A[e2.first];
}
}
t += H[e1.first];
t += e1.second;
v -= A[e1.first];
}
}
t += H[i];
v -= A[i];
}
cout << ans;
}
int main() {
Q3();
return 0;
}
#小红书#