#include<bits/stdc++.h>
using namespace std;
#define f first
#define s second
vector<int> ad[100010];
int vis[100010];
pair<int,int> dfs(int u,int p,int w)
{
vis[u]=1;
int j=u;
int ww=w;
//cout<<u<<" "<<w<<'\n';
for(auto x:ad[u])
{
if(x==p)
continue;
auto pp=dfs(x,u,w+1);
if(pp.f>ww)
{
ww=pp.f;
j=pp.s;
}
}
return {ww,j};
}
int main()
{
int n,m;
cin>>n>>m;
for(int i=0;i<m;i++)
{
int a,b;
cin>>a>>b;
ad[a].push_back(b);
ad[b].push_back(a);
}
int ans=0;
for(int i=1;i<=n;i++)
{
if(!vis[i])
{
int a=dfs(i,0,1).s;
ans+=dfs(a,0,1).f;
}
}
cout<<ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |