Advertisement
ke_timofeeva7

дерево

Jun 15th, 2021
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.80 KB | None | 0 0
  1.  
  2. #include <iostream>
  3. #include <string>
  4. #include <sstream>
  5. #include <cmath>
  6. #include <algorithm>
  7. #include <memory.h>
  8. #include <stdio.h>
  9. #include <vector>
  10. #include <stack>
  11. #include <deque>
  12. #include <queue>
  13. #include <vector>
  14. #include <set>
  15. #include <iterator>
  16. #include <map>
  17. #include <iomanip>
  18. #define int long long
  19. #define fir first
  20. #define sec second
  21. #define sp system("pause")
  22. #define pb push_back
  23. #define double long double
  24. #define endl "\n"
  25. #define un unsigned
  26. using namespace std;
  27.  
  28. vector <int> mark(10000);
  29. vector<set<int>> gr(10000);
  30. int mas[105][105];
  31. int ans = 0;
  32. int kol_reb = 0;
  33.  
  34. void in_set(int n)
  35. {
  36.     for (int i = 0; i < n; i++)
  37.     {
  38.         for (int j = 0; j < n; j++)
  39.         {
  40.             if (mas[i][j] == 1)
  41.             {
  42.                 gr[i].insert(j);
  43.                 kol_reb++;
  44.             }
  45.         }
  46.     }
  47.  
  48.     kol_reb /= 2;
  49.  
  50.     return;
  51. }
  52.  
  53. void DFS_cycle(int v, int pr)
  54. {
  55.     mark[v] = 1;
  56.  
  57.     for (int i : gr[v])
  58.     {
  59.         if (mark[i] == 0)
  60.         {
  61.             DFS_cycle(i, v);
  62.         }
  63.  
  64.         else if (i != pr)
  65.         {
  66.             ans++;
  67.         }
  68.  
  69.     }
  70.  
  71.     return;
  72. }
  73.  
  74. signed main()
  75. {
  76.     ios_base::sync_with_stdio();
  77.     cin.tie(0);
  78.     cout.tie(0);
  79.  
  80.     int n;
  81.     cin >> n;
  82.  
  83.     for (int i = 0; i < n; i++)
  84.     {
  85.         for (int j = 0; j < n; j++)
  86.         {
  87.             cin >> mas[i][j];
  88.         }
  89.     }
  90.  
  91.     in_set(n);
  92.  
  93.     if (kol_reb != n - 1)
  94.     {
  95.         cout << "NO";
  96.  
  97.         sp;
  98.         return 0;
  99.     }
  100.  
  101.     for (int i = 1; i <= n; i++)
  102.     {
  103.         for (int i = 0; i <= n; i++)
  104.         {
  105.             mark[i] = 0;
  106.         }
  107.  
  108.         DFS_cycle(i, -1);
  109.     }
  110.  
  111.     if (ans != 0)
  112.     {
  113.         cout << "NO";
  114.     }
  115.  
  116.     else
  117.     {
  118.         cout << "YES";
  119.     }
  120.  
  121.     return 0;
  122.  
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement