156742025-02-21 17:39:24KateTaylorKaktuszgráfcpp17Elfogadva 50/508ms4492 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva2/22ms564 KiB
4Elfogadva2/22ms564 KiB
5Elfogadva2/22ms508 KiB
6Elfogadva2/22ms436 KiB
7Elfogadva2/24ms2044 KiB
8Elfogadva2/22ms456 KiB
9Elfogadva2/22ms564 KiB
10Elfogadva2/22ms600 KiB
11Elfogadva2/22ms564 KiB
12Elfogadva2/22ms564 KiB
13Elfogadva2/23ms812 KiB
14Elfogadva2/22ms564 KiB
15Elfogadva2/22ms564 KiB
16Elfogadva2/22ms500 KiB
17Elfogadva2/22ms316 KiB
18Elfogadva2/22ms564 KiB
19Elfogadva3/32ms564 KiB
20Elfogadva3/37ms3308 KiB
21Elfogadva3/38ms4404 KiB
22Elfogadva3/38ms4492 KiB
23Elfogadva3/38ms4460 KiB
24Elfogadva3/38ms4296 KiB