fork download
  1. #include <bits/stdc++.h>
  2. #include <stdio.h>
  3. using namespace std;
  4. //#define int long long
  5. #define dd double
  6. #define ld long double
  7. #define ull unsigned long long
  8. #define yes cout << "YES\n"
  9. #define no cout << "NO\n"
  10. #define el "\n"
  11. #define Arwa ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  12. #define fix(x) cout << fixed << setprecision(x)
  13. #define all(v) v.begin(),v.end()
  14. //#define mod 1000000007
  15. // checkprime
  16. bool prime(int n) {
  17. if (n == 2) return true;
  18. if (n % 2 == 0 || n == 1) return false;
  19. for (int i = 3; i * i <= n; i += 2)
  20. if (n % i == 0) return false;
  21. return true;
  22. }
  23. // Gcd
  24. int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
  25. // Lcm
  26. int lcm(int a, int b) { return a / gcd(a, b) * b; } // __lcm(a,b)
  27. // divisors
  28. vector<int> GetDivisors(int n)
  29. {
  30. vector<int>divisors;
  31. for(int i=1;i*i<=n;i++)
  32. {
  33. if(n%i==0)
  34. {
  35. if(i==n/i)
  36. divisors.push_back(i);
  37. else
  38. {
  39. divisors.push_back(i);
  40. divisors.push_back(n/i);
  41. }
  42. }
  43. }
  44. return divisors;
  45. }
  46. int fastPower(int n,int x,int mod) //power,number,mod
  47. {
  48. if(n==0) return 1%mod;
  49. if(n==1) return x%mod;
  50. int ans=fastPower(n/2,x,mod);
  51. ans=ans*ans % mod;
  52. if(n&1) ans= ans*x%mod ;
  53. return ans;
  54. }
  55. void HereWeGoAgain()
  56. {
  57. int n,m,res=0;
  58. cin>>n>>m;
  59. pair<int,int> arr[m];
  60. map<int,int>c;
  61. map<pair<int,int>,bool>f;
  62. for(int i=0;i<m;i++)
  63. cin>>arr[i].first>>arr[i].second;
  64. for(int i=0;i<m;i++)
  65. c[arr[i].first]++,c[arr[i].second]++;
  66. for(int i=0;i<m;i++)
  67. {
  68. int cnt=0;
  69. for(int j=0;j<m;j++)
  70. {
  71. if(c[arr[j].first]==1||c[arr[j].second]==1)
  72. f[arr[j]]=1;
  73. }
  74.  
  75. for(int j=0;j<m;j++)
  76. {
  77. if(f[arr[j]]==1)
  78. {
  79. if(c[arr[j].first]==1||c[arr[j].second]==1)
  80. {
  81. c[arr[j].second]--,c[arr[j].first]--;
  82. f[arr[j]]=0;
  83. cnt++;
  84. }
  85. }
  86. }
  87. if(cnt) res++;
  88. else break;
  89. }
  90. cout<<res<<el;
  91. }
  92.  
  93. //اى ويل بريبير ماى بيبرز تو بى ذا بيست ان زيس وورلد
  94. int32_t main()
  95. {
  96. Arwa
  97. int t=1;
  98. //cin>>t;
  99. while(t--)
  100. {
  101. HereWeGoAgain();
  102. }
  103. return 0;
  104. }
  105.  
  106.  
Success #stdin #stdout 0.01s 5276KB
stdin
Standard input is empty
stdout
0