Advertisement
Guest User

Untitled

a guest
Dec 17th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.91 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5. void dfs_top (int cur, int parent, int curDistance, int& maxDist, int& maxDistVert, std::vector <std::vector<int> >& graph) {
  6.     //Returns max distanced vertex
  7.     //пэрэнт - предок предыдущей вершины
  8.     for (int i = 0; i < graph[cur].size(); i++) {
  9.         if (curDistance > maxDist && graph[cur][i] != parent) {
  10.             maxDist = curDistance;
  11.             maxDistVert = graph[cur][i];
  12.         }
  13.         int par;
  14.     for (int j = 0; j < graph[cur].size(); j++) {
  15.         if (graph[cur][j] > graph[cur][i]) {
  16.             par = graph[cur][j];
  17.             return;
  18.         }
  19.     }
  20.         dfs_top(graph[cur][i], par, curDistance + 1, maxDist, maxDistVert, graph);
  21.     }
  22. }
  23. //ищет расстояние до точки, записывает в массив под индексом вершины, от которой искали расстояние
  24. void dfs_diameter () {
  25.  
  26. }
  27.  
  28. bool comparison (std::vector<int>)
  29.  
  30. int main() {
  31.     int n;
  32.     std::cin >> n;
  33.     std::vector <std::vector<int> > vec(n);
  34.     int num1;
  35.     for (int i = 0; i < n-1; i++) {
  36.         int num1;
  37.         int num2;
  38.         std:: cin >> num2;
  39.         if (num1 < num2) {
  40.             vec[num1].push_back(num2);
  41.             vec[num2].push_back(num1);
  42.         }
  43.         else {
  44.             vec[num2].push_back(num1);
  45.             vec[num1].push_back(num2);
  46.         }
  47.     }
  48.     int maxDist;
  49.     int maxDistVert1;
  50.     dfs_top (0, -1, 0, maxDist, maxDistVert1, vec);
  51.     int maxDistVert2;
  52.     int parent;
  53.     for (int i = 0; i < vec[maxDistVert1].size(); i++) {
  54.         if (vec[maxDistVert1][i] > maxDistVert1) {
  55.             parent = vec[maxDistVert1][i];
  56.             break;
  57.         }
  58.     }
  59.     dfs_top (maxDistVert1, parent, 0, maxDist, maxDistVert2, vec);
  60.     int* arrayDist1 = new int [n];
  61.     int* arrayDist2 = new int [n];
  62.  
  63.  
  64.  
  65.  
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement