41522023-03-15 15:30:24horvathabelKaktuszgráfcpp17Accepted 50/504ms4560 KiB
#include <bits/stdc++.h>
using namespace std;
vector<int> g[1001];
int ans=0;
vector<int> szin; 
int p[1001];
bool seen[1001];
int kormeret(int a, int b){
	int cnt=0; 
	while (a!=b){ 
		cnt++;		
		a=p[a];
	}
	return cnt+1; 
}
void dfs(int x){
	if (!seen[x]){
		szin[x]=0; 
		seen[x]=true; 
		for (int i:g[x]){
			if (szin[i]==1) ans=max(kormeret(i,x),ans);
			if (!seen[i]){
				dfs(i);
				p[i]=x; 
			}
		}
		
	}
	szin[x]=1;
	
}
int main() {
	int n,m;
	cin>>n>>m;
		szin.assign(n+1, -1);

	for (int i=0; i<m;i++){
		int x,y;
		cin>>x>>y; 
		g[x].push_back(y);
		g[y].push_back(x);
	}
	dfs(1); 
	cout<<ans; 
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/03ms1900 KiB
2Accepted0/03ms2268 KiB
3Accepted2/23ms2488 KiB
4Accepted2/23ms2696 KiB
5Accepted2/23ms2912 KiB
6Accepted2/23ms3132 KiB
7Accepted2/23ms3216 KiB
8Accepted2/23ms3468 KiB
9Accepted2/23ms3308 KiB
10Accepted2/23ms3620 KiB
11Accepted2/23ms3496 KiB
12Accepted2/24ms3676 KiB
13Accepted2/23ms3656 KiB
14Accepted2/23ms3600 KiB
15Accepted2/23ms3656 KiB
16Accepted2/23ms3648 KiB
17Accepted2/23ms3712 KiB
18Accepted2/23ms3908 KiB
19Accepted3/34ms4160 KiB
20Accepted3/33ms4164 KiB
21Accepted3/33ms4440 KiB
22Accepted3/33ms4464 KiB
23Accepted3/33ms4560 KiB
24Accepted3/33ms4532 KiB