Source code for submission s774

fr.cpp

  1. #include <cstdio>
  2. #include <vector>
  3. #include <iostream>
  4. #include <string>
  5. #include <algorithm>
  6. #include <cstring>
  7. #include <set>
  8. #include <vector>
  9.  
  10. using namespace std;
  11.  
  12. struct edge
  13. {
  14. edge(int bb, int cc) { b = bb; w = cc; }
  15. int b, w;
  16. bool operator<(edge const& e) const { return w < e.w; }
  17. };
  18.  
  19. vector<vector<edge> > v;
  20.  
  21. int go(int node, int prev)
  22. {
  23. int res = 0;
  24. for (int i = 0; i < v[node].size(); ++i)
  25. if (v[node][i].b != prev)
  26. res += min(v[node][i].w, go(v[node][i].b, node));
  27.  
  28. // cout << "node " << node << " returned " << res << endl;
  29. return res ? res : 10000000;
  30. }
  31.  
  32. int main()
  33. {
  34. int n, c;
  35.  
  36.  
  37.  
  38. while (scanf("%d %d\n", &n, &c) > 0)
  39. {
  40. v.clear();
  41. v.resize(n+1);
  42. int u, vv, w;
  43. for (int i = 0; i < n-1; ++i)
  44. {
  45. scanf("%d %d %d", &u, &vv, &w);
  46. v[u].push_back(edge(vv, w));
  47. v[vv].push_back(edge(u, w));
  48. }
  49.  
  50. printf("%d\n", go(c, 0));
  51.  
  52. }
  53. return 0;
  54. }
  55.