Submission #1360865

#TimeUsernameProblemLanguageResultExecution timeMemory
1360865po_rag526Cijanobakterije (COCI21_cijanobakterije)C++20
70 / 70
40 ms14556 KiB
#include<bits/stdc++.h>
using namespace std;
	int a,b,c,d,e,f,g[100005][2],ans=0;
	vector<int>v[100005];
	bool vis[100005];
int dfs1(int x,int y){
	vis[x]=1;
	g[x][0]=0;
	g[x][1]=0;
	int ret=0;
	for(int i=0;i<v[x].size();i++){
		if(v[x][i]!=y){
			ret=max(ret,dfs1(v[x][i],x));
			if(g[v[x][i]][0]>g[x][0]){
				g[x][1]=g[x][0];
				g[x][0]=g[v[x][i]][0];
			}
			else if(g[v[x][i]][0]>g[x][1]){
				g[x][1]=g[v[x][i]][0];
			}
		}
	}
	int gmm=max(ret,g[x][0]+g[x][1]+1);
	g[x][0]++;
	return gmm;
}
int main(){
	cin>>a>>b;
	for(int i=0;i<b;i++){
		cin>>c>>d;
		v[c].push_back(d);
		v[d].push_back(c);
	}
	for(int i=1;i<=a;i++){
		if(vis[i]==0){
			ans+=dfs1(i,i);
		}
	}
	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...