Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4. #include <string>
  5. #include <stack>
  6. #include <set>
  7. #include <map>
  8. #include <unordered_map>
  9. #include <unordered_set>
  10. #include <queue>
  11. #include <sstream>
  12. #include <iterator>
  13. #include <iomanip>
  14. #include <cstdio>
  15. #include <climits>
  16. #include <float.h>
  17. #include <cmath>
  18.  
  19. #define forn(i, n) for (int i = 0; i < int(n); i++)
  20. #define forn1(i, n) for (int i = 1; i < int(n); i++)
  21. #define forr(i, n) for (int i = int(n) - 1; i >= 0; i--)
  22. #define forit(it, a) for (auto it = (a).begin(); it != (a).end(); it++)
  23. #define all(a) (a).begin(), (a).end()
  24. #define mp make_pair
  25. #define pb push_back
  26. #define fir first
  27. #define sec second
  28.  
  29. using namespace std;
  30.  
  31. typedef long long ll;
  32. typedef pair<int, int> pt;
  33.  
  34. int dx[] = {1, -1, 0, 0};
  35. int dy[] = {0, 0, 1, -1};
  36.  
  37. vector <vector <int>> graph_rev;
  38. vector <bool> used;
  39.  
  40. int main(){
  41. ios_base::sync_with_stdio(false);
  42. int n, m;
  43. cin >> n >> m;
  44. vector <set<int>> edges(n);
  45. forn(i, m)
  46. {
  47. int x, y;
  48. cin >> x >> y;
  49. x--; y--;
  50. edges[x].insert(y);
  51. edges[y].insert(x);
  52. }
  53. vector <bool> mark(n);
  54. int cnt = 0;
  55. while (true)
  56. {
  57. used = vector <bool> (n);
  58. bool flag = false;
  59. forn(i, n)
  60. {
  61. if (!used[i] && !mark[i] && edges[i].size() == 1)
  62. {
  63. forit(it, edges[i])
  64. {
  65. int to = *it;
  66. used[to] = true;
  67. edges[to].erase(i);
  68. }
  69. edges[i].clear();
  70. used[i] = true;
  71. mark[i] = true;
  72. flag = true;
  73. }
  74. }
  75. if (!flag)
  76. break;
  77. else
  78. cnt++;
  79. }
  80. cout << cnt << endl;
  81. return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement