216442026-01-13 17:42:19algoproHírlánccpp17Elfogadva 80/80155ms13736 KiB
// UUID: 03cf9dac-c750-43a8-aa29-05b59e81aa3f
#include <bits/stdc++.h>
using namespace std;

void dfs(int a, int dis, const vector<vector<int>> &g, vector<int> &dist) {
	dist[a] = dis;
	for(auto i : g[a]) {
		dfs(i, dis+1, g,dist);
	}
}

int main() {
	int n; cin >> n;
	vector<int> x(n+1);
	vector<vector<int>> g(n+1);
	vector<int> indeg(n+1);
	vector<bool> kor(n+1, true);
	vector<int> dist(n+1, 0);
	for(int i = 1; i <= n; i++) {
		int a; cin >> a;
		x[i] = a;
		g[a].push_back(i);
		indeg[a]++;
	}
	queue<int> q;
	for(int i = 1; i <= n; i++) {
		if(indeg[i] == 0) q.push(i);
	}
	while(q.size() != 0) {
		int w = q.front();
		q.pop();
		kor[w] = false;
		indeg[x[w]]--;
		if(indeg[x[w]] == 0) q.push(x[w]);
	}
	for(int i = 1; i <= n; i++) {
		if(kor[i] == true && dist[i] == 0) {
			int dis = 1;
			int z = x[i];
			while(z != i) {
				dis++;
				z = x[z];
			}
			dist[i] = dis;
			z = x[i];
			while(z != i) {
				dist[z] = dis;
				z = x[z];
			}
		}
	}
	for(int i = 1; i <= n; i++) {
		if(kor[i] == true) {
			for(auto j : g[i]) {
				if(kor[j] == false) {
					dfs(j, dist[i]+1,g,dist);
				}
			}
		}
	}
	int ans = 0;
	int ln = 0;
	for(int i = 1; i <= n; i++) {
		if(dist[i] > ln) {
			ln = dist[i];
			ans = i;
		}
	}
	cout << ans << " " << dist[ans];
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms560 KiB
subtask220/20
2Elfogadva2ms316 KiB
3Elfogadva2ms512 KiB
4Elfogadva2ms316 KiB
5Elfogadva2ms316 KiB
6Elfogadva2ms316 KiB
7Elfogadva2ms316 KiB
8Elfogadva2ms316 KiB
9Elfogadva2ms316 KiB
10Elfogadva2ms552 KiB
11Elfogadva2ms316 KiB
12Elfogadva2ms496 KiB
subtask318/18
13Elfogadva125ms13712 KiB
14Elfogadva143ms13736 KiB
15Elfogadva126ms13560 KiB
16Elfogadva144ms13528 KiB
17Elfogadva125ms13696 KiB
18Elfogadva145ms13616 KiB
19Elfogadva141ms13632 KiB
20Elfogadva125ms13604 KiB
21Elfogadva122ms13508 KiB
22Elfogadva127ms13532 KiB
subtask442/42
23Elfogadva1ms508 KiB
24Elfogadva2ms316 KiB
25Elfogadva2ms512 KiB
26Elfogadva2ms316 KiB
27Elfogadva2ms316 KiB
28Elfogadva2ms316 KiB
29Elfogadva2ms316 KiB
30Elfogadva2ms316 KiB
31Elfogadva2ms316 KiB
32Elfogadva2ms552 KiB
33Elfogadva2ms316 KiB
34Elfogadva2ms496 KiB
35Elfogadva125ms13712 KiB
36Elfogadva143ms13736 KiB
37Elfogadva126ms13560 KiB
38Elfogadva144ms13528 KiB
39Elfogadva125ms13696 KiB
40Elfogadva145ms13616 KiB
41Elfogadva141ms13632 KiB
42Elfogadva125ms13604 KiB
43Elfogadva122ms13508 KiB
44Elfogadva127ms13532 KiB
45Elfogadva152ms11820 KiB
46Elfogadva155ms11568 KiB
47Elfogadva133ms11572 KiB
48Elfogadva133ms11528 KiB
49Elfogadva152ms11572 KiB
50Elfogadva134ms11596 KiB
51Elfogadva135ms12084 KiB
52Elfogadva155ms12288 KiB
53Elfogadva131ms11744 KiB
54Elfogadva125ms11708 KiB