/*
www.youtube.com/YugiHackerChannel
oj.vnoi.info/user/YugiHackerKhongCopCode
*/
#include<bits/stdc++.h>
#define el cout<<"\n"
#define f0(i,n) for(int i=0;i<n;++i)
#define f1(i,n) for(int i=1;i<=n;++i)
#define maxn 300005
using namespace std;
int n, m;
vector <int> a[maxn];
int ans, id[maxn], low[maxn], cnt, in[maxn], cc;
stack <int> s;
void dfs(int u, int p = -1)
{
low[u] = id[u] = ++cnt;
s.push(u);
for (int v:a[u]) if (v != p)
{
if (id[v]) low[u] = min(low[u], id[v]);
else
{
dfs(v, u);
low[u] = min(low[u], low[v]);
}
}
if (low[u] == id[u])
{
cc++;
while (1)
{
int v = s.top();
s.pop();
in[v] = cc;
if (v == u) break;
}
}
}
vector <int> b[maxn];
int h[maxn];
void dfs_tree(int u, int p = -1)
{
for (int v:b[u]) if (v != p)
{
h[v] = h[u] + 1;
dfs_tree(v, u);
}
}
main()
{
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin >> n >> m;
f1 (i, m)
{
int u, v; cin >> u >> v;
a[u].push_back(v);
a[v].push_back(u);
}
dfs(1);
f1 (u, n)
{
for (int v:a[u]) if (low[v] > id[u])
{
b[in[v]].push_back(in[u]);
b[in[u]].push_back(in[v]);
}
}
dfs_tree(1);
int root = max_element(h+1, h+cc+1) - h;
memset(h, 0, sizeof h);
dfs_tree(root);
cout << *max_element(h+1, h+cc+1);
}
HRDSEQ Hard Sequence | DRCHEF Doctor Chef |
559. Maximum Depth of N-ary Tree | 821. Shortest Distance to a Character |
1441. Build an Array With Stack Operations | 1356. Sort Integers by The Number of 1 Bits |
922. Sort Array By Parity II | 344. Reverse String |
1047. Remove All Adjacent Duplicates In String | 977. Squares of a Sorted Array |
852. Peak Index in a Mountain Array | 461. Hamming Distance |
1748. Sum of Unique Elements | 897. Increasing Order Search Tree |
905. Sort Array By Parity | 1351. Count Negative Numbers in a Sorted Matrix |
617. Merge Two Binary Trees | 1450. Number of Students Doing Homework at a Given Time |
700. Search in a Binary Search Tree | 590. N-ary Tree Postorder Traversal |
589. N-ary Tree Preorder Traversal | 1299. Replace Elements with Greatest Element on Right Side |
1768. Merge Strings Alternately | 561. Array Partition I |
1374. Generate a String With Characters That Have Odd Counts | 1822. Sign of the Product of an Array |
1464. Maximum Product of Two Elements in an Array | 1323. Maximum 69 Number |
832. Flipping an Image | 1295. Find Numbers with Even Number of Digits |