156732025-02-21 17:38:48KateTaylorKaktuszgráfpypy3Runtime error 0/5079ms22800 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int n, m, ans = 0;
vector<vector<int>> edges;
vector<int> vis;

void solve(int node, int from, vector<int> par) {
	if (vis[node] == 2) return;
	par[node] = from;
	if (vis[node]) {
		int len = 1, curr = node;
		while (node != par[curr]) {
			len++;
			curr = par[curr];
		}
		ans = max(ans, len);
		return;
	}
	vis[node] = 1;
	for (int x : edges[node]) {
		if (x != from) solve(x, node, par);
	}
	vis[node] = 2;
	return;
}

int main() {
	cin >> n >> m;
	edges.resize(n);
	vis.assign(n, 0);
	while (m--) {
		int u, v;
		cin >> u >> v;
		edges[u - 1].push_back(v - 1);
		edges[v - 1].push_back(u - 1);
	}
	vector<int> temp(n, -1);
	for (int i = 0; i < n; i++) {
		if (!vis[i]) solve(i, i, temp);
	}
	cout << ans;
	return 0;
}
SubtaskSumTestVerdictTimeMemory
base0/50
1Runtime error0/067ms22740 KiB
2Runtime error0/074ms22744 KiB
3Runtime error0/274ms22756 KiB
4Runtime error0/267ms22704 KiB
5Runtime error0/274ms22720 KiB
6Runtime error0/267ms22760 KiB
7Runtime error0/265ms22768 KiB
8Runtime error0/272ms22756 KiB
9Runtime error0/265ms22760 KiB
10Runtime error0/279ms22800 KiB
11Runtime error0/264ms22756 KiB
12Runtime error0/271ms22632 KiB
13Runtime error0/265ms22760 KiB
14Runtime error0/274ms22632 KiB
15Runtime error0/276ms22632 KiB
16Runtime error0/265ms22756 KiB
17Runtime error0/275ms22560 KiB
18Runtime error0/268ms22692 KiB
19Runtime error0/365ms22572 KiB
20Runtime error0/374ms22800 KiB
21Runtime error0/365ms22748 KiB
22Runtime error0/365ms22728 KiB
23Runtime error0/372ms22672 KiB
24Runtime error0/372ms22760 KiB