92902024-02-20 10:07:15GervidKaktuszgráfcpp17Hibás válasz 2/503ms3988 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, current;
	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;
			current = dfs(g, state, g[node][i]);
		}
	}

	state[node] = -2;
	return max(current, 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
base2/50
1Hibás válasz0/03ms1828 KiB
2Hibás válasz0/03ms2216 KiB
3Hibás válasz0/23ms2552 KiB
4Hibás válasz0/23ms2756 KiB
5Hibás válasz0/23ms2988 KiB
6Hibás válasz0/23ms2864 KiB
7Hibás válasz0/23ms3148 KiB
8Hibás válasz0/23ms3132 KiB
9Hibás válasz0/23ms3088 KiB
10Hibás válasz0/23ms3104 KiB
11Elfogadva2/23ms3368 KiB
12Hibás válasz0/23ms3412 KiB
13Hibás válasz0/23ms3484 KiB
14Hibás válasz0/23ms3464 KiB
15Hibás válasz0/23ms3636 KiB
16Hibás válasz0/23ms3500 KiB
17Hibás válasz0/23ms3508 KiB
18Hibás válasz0/23ms3780 KiB
19Hibás válasz0/33ms3744 KiB
20Hibás válasz0/33ms3928 KiB
21Hibás válasz0/33ms3964 KiB
22Hibás válasz0/33ms3972 KiB
23Hibás válasz0/33ms3984 KiB
24Hibás válasz0/33ms3988 KiB