제출 #1176446

#제출 시각아이디문제언어결과실행 시간메모리
1176446prideliqueeeCijanobakterije (COCI21_cijanobakterije)C++20
70 / 70
46 ms13892 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...