92912024-02-20 10:11:20GervidKaktuszgráfcpp17Elfogadva 50/503ms3644 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ÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/03ms1832 KiB
2Elfogadva0/03ms2176 KiB
3Elfogadva2/23ms2400 KiB
4Elfogadva2/23ms2508 KiB
5Elfogadva2/23ms2440 KiB
6Elfogadva2/23ms2448 KiB
7Elfogadva2/23ms2792 KiB
8Elfogadva2/23ms2780 KiB
9Elfogadva2/23ms3000 KiB
10Elfogadva2/23ms3188 KiB
11Elfogadva2/23ms3200 KiB
12Elfogadva2/23ms3288 KiB
13Elfogadva2/23ms3116 KiB
14Elfogadva2/23ms3108 KiB
15Elfogadva2/23ms3112 KiB
16Elfogadva2/23ms3108 KiB
17Elfogadva2/23ms3112 KiB
18Elfogadva2/23ms3108 KiB
19Elfogadva3/33ms3396 KiB
20Elfogadva3/33ms3520 KiB
21Elfogadva3/33ms3552 KiB
22Elfogadva3/33ms3644 KiB
23Elfogadva3/33ms3552 KiB
24Elfogadva3/33ms3644 KiB