제출 #798462

#제출 시각아이디문제언어결과실행 시간메모리
798462OspleiRoadside Advertisements (NOI17_roadsideadverts)C++17
7 / 100
1066 ms5436 KiB
#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 (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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...