제출 #1326785

#제출 시각아이디문제언어결과실행 시간메모리
1326785GabrielTravelling Trader (CCO23_day2problem2)C++20
2 / 25
168 ms33716 KiB
#include "bits/stdc++.h" using namespace std; vector< vector<long long> > Grafo; vector<long long> v, d, a; void DFS(int Nodo){ for(auto E: Grafo[Nodo]){ if(d[E] > d[Nodo] + v[E]){ d[E] = d[Nodo] + v[E]; DFS(E); a[E] = Nodo; } } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n, k; cin>>n>>k; Grafo.assign(n, {}); v.assign(n, 0); d.assign(n, 2222222222222222); a.assign(n, -2); for(int i = 0; i < n - 1; i++){ int a, b; cin>>a>>b; a--; b--; Grafo[a].push_back(b); Grafo[b].push_back(a); } for(int i = 0; i < n; i++) cin>>v[i]; if(k == 1){ d[0] = v[0]; DFS(0); int p = 0; long long m = 0; for(int i = 0; i < n; i++){ if(d[i] > m){ m = d[i]; p = i; } } vector<int> r; cout<<m<<"\n"; while(p != -2){ r.push_back(p); p = a[p]; } reverse(r.begin(), r.end()); cout<<r.size()<<"\n"; for(auto E: r) cout<<E + 1<<" "; } 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...