222602026-01-14 18:57:44algoproHírlánccpp17Accepted 80/8089ms9012 KiB
// UUID: 28289eb6-02cf-4a40-8e4c-1ed53a82bdc7
#include <bits/stdc++.h>
using namespace std;
//SEGÍTSÉGGEL, a tavalyi megoldásokból inspirálódva, hogy megértsem a feladatot,
//és megértsem a mintát. 
const int N=2e5+1;

struct Graph {
	int len[N];
	int parent[N];
	int next[N];
	bool bennE[N];
} g;

int kms(int u) {
	g.bennE[u]=1;
	if (g.len[u]!=-1) {
		g.bennE[u]=0;
		return g.len[u];
	}
	int v=g.next[u];

	if (g.bennE[v]) {
		int circle=0;
		for (int w=u; ; w=g.parent[w]) {
			circle++;
			if (w==v) break;
		}
		for (int w=u; ; w=g.parent[w]) {
			g.len[w]=circle;
			if (w==v) break;
		}
		g.bennE[u]=0;
		return g.len[u];
	}
	g.parent[v]=u;
	int help=kms(v);
	
	if (g.len[u]==-1) {
		g.len[u]=help+1;
	}
	g.bennE[u]=0;
	return g.len[u];
} 

int main() {
	int n; cin >> n;
	for (int i=1; i<=n; i++) {
		cin >> g.next[i]; 
	}
	memset(g.len, -1, sizeof g.len); // mint egy init for csak gyorsabb elv.

	int megold=0, legtobb=0; 
	for (int i=1; i<=n; i++) {
		int tmp=kms(i);
		if (tmp>legtobb) {
			legtobb=tmp;
			megold=i;
		}
	}
	cout << megold << " " << legtobb;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms1076 KiB
subtask220/20
2Accepted2ms1268 KiB
3Accepted2ms1192 KiB
4Accepted2ms1076 KiB
5Accepted2ms1260 KiB
6Accepted2ms1076 KiB
7Accepted2ms1076 KiB
8Accepted2ms1076 KiB
9Accepted2ms1076 KiB
10Accepted2ms1076 KiB
11Accepted2ms1076 KiB
12Accepted2ms1076 KiB
subtask318/18
13Accepted76ms2888 KiB
14Accepted79ms2956 KiB
15Accepted82ms4400 KiB
16Accepted82ms3380 KiB
17Accepted86ms4660 KiB
18Accepted86ms4916 KiB
19Accepted83ms4916 KiB
20Accepted83ms4908 KiB
21Accepted89ms7992 KiB
22Accepted86ms9012 KiB
subtask442/42
23Accepted2ms1076 KiB
24Accepted2ms1268 KiB
25Accepted2ms1192 KiB
26Accepted2ms1076 KiB
27Accepted2ms1260 KiB
28Accepted2ms1076 KiB
29Accepted2ms1076 KiB
30Accepted2ms1076 KiB
31Accepted2ms1076 KiB
32Accepted2ms1076 KiB
33Accepted2ms1076 KiB
34Accepted2ms1076 KiB
35Accepted76ms2888 KiB
36Accepted79ms2956 KiB
37Accepted82ms4400 KiB
38Accepted82ms3380 KiB
39Accepted86ms4660 KiB
40Accepted86ms4916 KiB
41Accepted83ms4916 KiB
42Accepted83ms4908 KiB
43Accepted89ms7992 KiB
44Accepted86ms9012 KiB
45Accepted76ms2868 KiB
46Accepted76ms4148 KiB
47Accepted76ms4180 KiB
48Accepted76ms3112 KiB
49Accepted79ms3380 KiB
50Accepted78ms3648 KiB
51Accepted79ms3636 KiB
52Accepted79ms3636 KiB
53Accepted81ms4404 KiB
54Accepted79ms4868 KiB