217622026-01-13 19:38:42algoproHírlánccpp17Elfogadva 80/8082ms3924 KiB
// UUID: f498104c-176d-4ad3-9130-fd739898d707
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;

vector<int> c;
vector<int> eler;
vector<int> volt;
int bejid = 1;

void bejar(int kezd) {
	int id = bejid++;
	vector<int> erintett;
	int u = kezd;

	while (true) {
		volt[u] = id;
		erintett.push_back(u);

		int kov = c[u];

		if (volt[kov] == id) {
			int hossz = 1;
			for (int i = (int)erintett.size() - 1; erintett[i] != kov; i--) hossz++;

			bool korben = false;
			for (int x : erintett) {
				if (x == kov) korben = true;
				if (korben) eler[x] = hossz;
			}

			for (int i = (int)erintett.size() - 1; i >= 0; i--) {
				int x = erintett[i];
				if (eler[x]) continue;
				eler[x] = eler[c[x]] + 1;
			}

			return;
		}

		if (eler[kov] > 0) {
			int val = eler[kov];
			for (int i = (int)erintett.size() - 1; i >= 0; i--) {
				eler[erintett[i]] = val + 1;
				val++;
			}
			return;
		}

		u = kov;
	}
}

int main() {
	int n;
	cin >> n;

	c.assign(n + 1, 0);
	eler.assign(n + 1, 0);
	volt.assign(n + 1, 0);

	for (int i = 1; i <= n; i++) cin >> c[i];

	for (int i = 1; i <= n; i++) {
		if (!eler[i]) bejar(i);
	}

	int leg = 1;

	for (int i = 2; i <= n; i++) {
		if (eler[i] > eler[leg]) leg = i;
	}

	cout << leg << ' ' << eler[leg];
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
subtask220/20
2Elfogadva2ms316 KiB
3Elfogadva2ms316 KiB
4Elfogadva1ms316 KiB
5Elfogadva2ms316 KiB
6Elfogadva2ms316 KiB
7Elfogadva2ms316 KiB
8Elfogadva2ms316 KiB
9Elfogadva2ms316 KiB
10Elfogadva2ms316 KiB
11Elfogadva2ms316 KiB
12Elfogadva1ms508 KiB
subtask318/18
13Elfogadva79ms2808 KiB
14Elfogadva76ms2612 KiB
15Elfogadva76ms2612 KiB
16Elfogadva78ms2780 KiB
17Elfogadva78ms3064 KiB
18Elfogadva81ms3508 KiB
19Elfogadva79ms3504 KiB
20Elfogadva81ms3412 KiB
21Elfogadva78ms3924 KiB
22Elfogadva79ms3748 KiB
subtask442/42
23Elfogadva1ms500 KiB
24Elfogadva2ms316 KiB
25Elfogadva2ms316 KiB
26Elfogadva1ms316 KiB
27Elfogadva2ms316 KiB
28Elfogadva2ms316 KiB
29Elfogadva2ms316 KiB
30Elfogadva2ms316 KiB
31Elfogadva2ms316 KiB
32Elfogadva2ms316 KiB
33Elfogadva2ms316 KiB
34Elfogadva1ms508 KiB
35Elfogadva79ms2808 KiB
36Elfogadva76ms2612 KiB
37Elfogadva76ms2612 KiB
38Elfogadva78ms2780 KiB
39Elfogadva78ms3064 KiB
40Elfogadva81ms3508 KiB
41Elfogadva79ms3504 KiB
42Elfogadva81ms3412 KiB
43Elfogadva78ms3924 KiB
44Elfogadva79ms3748 KiB
45Elfogadva82ms2612 KiB
46Elfogadva82ms2612 KiB
47Elfogadva82ms2612 KiB
48Elfogadva82ms2804 KiB
49Elfogadva82ms2956 KiB
50Elfogadva82ms2868 KiB
51Elfogadva82ms2868 KiB
52Elfogadva81ms2764 KiB
53Elfogadva82ms3044 KiB
54Elfogadva82ms3248 KiB