Submission #1360307

#TimeUsernameProblemLanguageResultExecution timeMemory
1360307ezzzayCijanobakterije (COCI21_cijanobakterije)C++20
70 / 70
41 ms10784 KiB
#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
const int N=3e5+5;
vector<int>v[N];
int dst[N];
pair<int,int> mx;
void dfs(int a, int p){
	dst[a]=dst[p]+1;
	mx=max(mx, {dst[a],a});
	for(auto b:v[a]){
		if(b==p)continue;
		dfs(b,a);
	}
}

signed main(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int a,b;
		cin>>a>>b;
		v[a].pb(b);
		v[b].pb(a);
	}
	int ans=0;
	for(int i=1;i<=n;i++){
		if(dst[i]==0){
			ans++;
			mx={0,0};
			dfs(i,0);
			
			dfs(mx.ss,0);
			ans+= mx.ff-1;
		}
	}
	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...