| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1327604 | gdshirpeleng | Roadside Advertisements (NOI17_roadsideadverts) | C++20 | 1095 ms | 6668 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;
ans=0;
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 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... | ||||
