Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- const int N = 1e5;
- vector< pair<int, int> > g[N+5];
- int visitados[N+5];
- int b; // chegada
- int INF = 0x3f3f3f3f;
- int DFS(int a){
- visitados[a] = 1;
- if(a == b) return 0;
- int ans = INF ;
- for(int i = 0; i < g[a].size(); i++){
- int vizinho = g[a][i].first;
- cout << vizinho << endl;
- if(visitados[vizinho] == 0){
- ans = min(ans, DFS(vizinho)+g[a][i].second);
- }
- }
- return ans;
- }
- int main(){
- int n, a, b;
- cin >> n >> a >> b;
- for(int i = 1; i <= n-1; i++ ){ //n-1 arestas indicando arvore
- int x, y, p; // peso da aresta
- cin >> x >> y >> p;
- g[x].push_back(make_pair(y,p)); g[y].push_back(make_pair(x,p));
- }
- cout << DFS(a) << endl; // guarda a partida;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement