제출 #1327603

#제출 시각아이디문제언어결과실행 시간메모리
1327603gdshirpelengRoadside Advertisements (NOI17_roadsideadverts)C++20
7 / 100
1096 ms6668 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
#define in insert
#define pb push_back

vector<pair<ll,ll>>graph[50001];
vector<bool>sec;
vector<ll>dist;
ll ans=0;

void dfs(ll node){
    
    if(sec[node]){
        ans=dist[node];
    }
    
    for(pair<ll,ll>p:graph[node]){
        if(dist[p.first]==-1){
            dist[p.first]=dist[node]+p.second;
            dfs(p.first);
            dist[node]=ans;
        }
    }
}

void solve(){
    ll n;
    cin>>n;
    ll u,s,w;
    for(int i=0;i<n-1;i++){
        cin>>u>>s>>w;
        graph[u].pb({s,w});
        graph[s].pb({u,w});
    }
    ll t;
    cin>>t;
    while(t--){
        ll x;
        dist.assign(n+1,-1);
        sec.assign(n+1,0);
        ll bas;
        for(int i=0;i<5;i++){
            cin>>x;
            sec[x]=1;
            bas=x;
        }
        dist[bas]=0;
        dfs(bas);
        cout<<ans<<'\n';
    }
}

int main(){
    solve();
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...