This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int n, u, v, w, a, b, c, d, e, q, vistos, ans;
vector <pair <int, int>> grafo[50005];
bool visto[50005];
int dfs(int nodo, int suma){
if (vistos==5) return 0;
if (nodo==a || nodo==b || nodo==c || nodo==d || nodo==e) {
vistos++;
ans+=max(suma, 0);
suma=0;
}
visto[nodo]=true;
for (auto i:grafo[nodo]) if (visto[i.first]==false) dfs(i.first, suma+i.second);
return suma=-100000;
}
void SOLVE(){
cin >> n;
for (int i=0; i<n-1; i++){
cin >> u >> v >> w;
grafo[u].push_back({v, w});
grafo[v].push_back({u, w});
}
cin >> q;
while (q--){
cin >> a >> b >> c >> d >> e;
memset(visto, false, sizeof visto);
vistos=0;
ans=0;
dfs(a, 0);
cout << ans << "\n";
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t = 1;
//cin >> t;
while(t--){
SOLVE();
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |