Advertisement
ke_timofeeva7

бусинки

May 28th, 2021
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.47 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <sstream>
  4. #include <cmath>
  5. #include <algorithm>
  6. #include <memory.h>
  7. #include <stdio.h>
  8. #include <vector>
  9. #include <stack>
  10. #include <deque>
  11. #include <queue>
  12. #include <vector>
  13. #include <set>
  14. #include <iterator>
  15. #include <map>
  16. #include <iomanip>
  17. #define int long long
  18. #define sp system("pause")
  19. #define pb push_back
  20. #define double long double
  21. #define endl "\n"
  22. #define un unsigned
  23. #define INF 1000000009
  24. #define pii pair<int, int>
  25. #define all(v) v.begin(), v.end()
  26. using namespace std;
  27.  
  28. int n1;
  29.  
  30. istream& operator >> (istream& in, vector<pii>& a)
  31. {
  32.     for (int i = 0; i < n1; i++)
  33.     {
  34.         in >> a[i].first;
  35.  
  36.         a[i].second = i + 1;
  37.     }
  38.  
  39.     return in;
  40. }
  41.  
  42. ostream& operator << (ostream& out, vector<char>& a)
  43. {
  44.     for (int i = n1 - 1; i > -1; i--)
  45.     {
  46.         out << a[i];
  47.     }
  48.  
  49.     return out;
  50. }
  51.  
  52. int mark[100000];
  53.  
  54. vector<set<int>> vc;
  55.  
  56. int ans = 0;
  57.  
  58. void DFS(int v)
  59. {
  60.     for (int i : vc[v])
  61.     {
  62.         if (mark[i] == -1)
  63.         {
  64.             mark[i] = mark[v] + 1;
  65.  
  66.             ans = max(ans, mark[i]);
  67.  
  68.             DFS(i);
  69.         }
  70.     }
  71.  
  72.     return;
  73. }
  74.  
  75. signed main()
  76. {
  77.     ios_base::sync_with_stdio(0);
  78.     cin.tie();
  79.     cout.tie();
  80.     cout.precision(7);
  81.  
  82.     int n;
  83.     cin >> n;
  84.  
  85.     vc.resize(n);
  86.  
  87.     for (int i = 0; i < n - 1; i++)
  88.     {
  89.         int a, b;
  90.         cin >> a >> b;
  91.  
  92.         a--;
  93.         b--;
  94.  
  95.         vc[a].insert(b);
  96.         vc[b].insert(a);
  97.     }
  98.  
  99.     for (int i = 0; i < n; i++)
  100.     {
  101.         fill(mark, mark + n, -1);
  102.  
  103.         mark[i] = 1;
  104.  
  105.         DFS(i);
  106.     }
  107.  
  108.     cout << ans;
  109.  
  110.     return 0;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement