9291 2024. 02. 20 10:11:20 Gervid Kaktuszgráf cpp17 Elfogadva 50/50 3ms 3644 KiB
#include <iostream>
#include <vector>
#include <queue>
#include <stack>
#include <limits.h>
#include <map>
#include <stack>
#include <algorithm>

using namespace std;

int dfs(vector<vector<int>>& g, vector<int>& state, int node)
{
	int i, longest = 1;
	for (i = 0; i < g[node].size(); i++)
	{
		if (state[g[node][i]] == -2)
		{
			continue;
		}
		if (state[node] - state[g[node][i]] > longest)
		{
			longest = state[node] - state[g[node][i]];
			continue;
		}
		if (state[g[node][i]] == INT_MAX)
		{
			state[g[node][i]] = state[node] + 1;
			longest = max(longest, dfs(g, state, g[node][i]));
		}
	}

	state[node] = -2;
	return longest;
}

int main()
{
	iostream::sync_with_stdio(0);
	cin.tie(0);

	int n, m, i, temp1, temp2;
	cin >> n >> m;

	vector<vector<int>> g(n);

	for (i = 0; i < m; i++)
	{
		cin >> temp1 >> temp2;

		g[--temp1].push_back(--temp2);
		g[temp2].push_back(temp1);
	}

	vector<int> state(n, INT_MAX);
	state[0] = 0;

	cout << dfs(g, state, 0) + 1;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1832 KiB
2 Elfogadva 0/0 3ms 2176 KiB
3 Elfogadva 2/2 3ms 2400 KiB
4 Elfogadva 2/2 3ms 2508 KiB
5 Elfogadva 2/2 3ms 2440 KiB
6 Elfogadva 2/2 3ms 2448 KiB
7 Elfogadva 2/2 3ms 2792 KiB
8 Elfogadva 2/2 3ms 2780 KiB
9 Elfogadva 2/2 3ms 3000 KiB
10 Elfogadva 2/2 3ms 3188 KiB
11 Elfogadva 2/2 3ms 3200 KiB
12 Elfogadva 2/2 3ms 3288 KiB
13 Elfogadva 2/2 3ms 3116 KiB
14 Elfogadva 2/2 3ms 3108 KiB
15 Elfogadva 2/2 3ms 3112 KiB
16 Elfogadva 2/2 3ms 3108 KiB
17 Elfogadva 2/2 3ms 3112 KiB
18 Elfogadva 2/2 3ms 3108 KiB
19 Elfogadva 3/3 3ms 3396 KiB
20 Elfogadva 3/3 3ms 3520 KiB
21 Elfogadva 3/3 3ms 3552 KiB
22 Elfogadva 3/3 3ms 3644 KiB
23 Elfogadva 3/3 3ms 3552 KiB
24 Elfogadva 3/3 3ms 3644 KiB