222602026-01-14 18:57:44algoproHírlánccpp17Elfogadva 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms1076 KiB
subtask220/20
2Elfogadva2ms1268 KiB
3Elfogadva2ms1192 KiB
4Elfogadva2ms1076 KiB
5Elfogadva2ms1260 KiB
6Elfogadva2ms1076 KiB
7Elfogadva2ms1076 KiB
8Elfogadva2ms1076 KiB
9Elfogadva2ms1076 KiB
10Elfogadva2ms1076 KiB
11Elfogadva2ms1076 KiB
12Elfogadva2ms1076 KiB
subtask318/18
13Elfogadva76ms2888 KiB
14Elfogadva79ms2956 KiB
15Elfogadva82ms4400 KiB
16Elfogadva82ms3380 KiB
17Elfogadva86ms4660 KiB
18Elfogadva86ms4916 KiB
19Elfogadva83ms4916 KiB
20Elfogadva83ms4908 KiB
21Elfogadva89ms7992 KiB
22Elfogadva86ms9012 KiB
subtask442/42
23Elfogadva2ms1076 KiB
24Elfogadva2ms1268 KiB
25Elfogadva2ms1192 KiB
26Elfogadva2ms1076 KiB
27Elfogadva2ms1260 KiB
28Elfogadva2ms1076 KiB
29Elfogadva2ms1076 KiB
30Elfogadva2ms1076 KiB
31Elfogadva2ms1076 KiB
32Elfogadva2ms1076 KiB
33Elfogadva2ms1076 KiB
34Elfogadva2ms1076 KiB
35Elfogadva76ms2888 KiB
36Elfogadva79ms2956 KiB
37Elfogadva82ms4400 KiB
38Elfogadva82ms3380 KiB
39Elfogadva86ms4660 KiB
40Elfogadva86ms4916 KiB
41Elfogadva83ms4916 KiB
42Elfogadva83ms4908 KiB
43Elfogadva89ms7992 KiB
44Elfogadva86ms9012 KiB
45Elfogadva76ms2868 KiB
46Elfogadva76ms4148 KiB
47Elfogadva76ms4180 KiB
48Elfogadva76ms3112 KiB
49Elfogadva79ms3380 KiB
50Elfogadva78ms3648 KiB
51Elfogadva79ms3636 KiB
52Elfogadva79ms3636 KiB
53Elfogadva81ms4404 KiB
54Elfogadva79ms4868 KiB