223732026-01-14 22:29:11lorantbHírlánccpp17Elfogadva 80/80156ms13732 KiB
#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
1Elfogadva1ms500 KiB
subtask220/20
2Elfogadva2ms500 KiB
3Elfogadva2ms508 KiB
4Elfogadva2ms316 KiB
5Elfogadva2ms316 KiB
6Elfogadva2ms316 KiB
7Elfogadva2ms316 KiB
8Elfogadva2ms544 KiB
9Elfogadva2ms316 KiB
10Elfogadva2ms316 KiB
11Elfogadva2ms316 KiB
12Elfogadva2ms316 KiB
subtask318/18
13Elfogadva150ms13620 KiB
14Elfogadva149ms13620 KiB
15Elfogadva149ms13732 KiB
16Elfogadva118ms13616 KiB
17Elfogadva144ms13620 KiB
18Elfogadva126ms13624 KiB
19Elfogadva140ms13620 KiB
20Elfogadva125ms13556 KiB
21Elfogadva128ms13620 KiB
22Elfogadva115ms13656 KiB
subtask442/42
23Elfogadva1ms316 KiB
24Elfogadva2ms500 KiB
25Elfogadva2ms508 KiB
26Elfogadva2ms316 KiB
27Elfogadva2ms316 KiB
28Elfogadva2ms316 KiB
29Elfogadva2ms316 KiB
30Elfogadva2ms544 KiB
31Elfogadva2ms316 KiB
32Elfogadva2ms316 KiB
33Elfogadva2ms316 KiB
34Elfogadva2ms316 KiB
35Elfogadva150ms13620 KiB
36Elfogadva149ms13620 KiB
37Elfogadva149ms13732 KiB
38Elfogadva118ms13616 KiB
39Elfogadva144ms13620 KiB
40Elfogadva126ms13624 KiB
41Elfogadva140ms13620 KiB
42Elfogadva125ms13556 KiB
43Elfogadva128ms13620 KiB
44Elfogadva115ms13656 KiB
45Elfogadva146ms11820 KiB
46Elfogadva135ms11572 KiB
47Elfogadva136ms11576 KiB
48Elfogadva152ms11672 KiB
49Elfogadva152ms11572 KiB
50Elfogadva156ms11572 KiB
51Elfogadva136ms12148 KiB
52Elfogadva134ms12188 KiB
53Elfogadva130ms11572 KiB
54Elfogadva122ms11584 KiB