| 22294 | 2026-01-14 20:51:10 | helloworld | Hírlánc | cpp17 | Accepted 80/80 | 79ms | 3520 KiB |
#include <bits/stdc++.h>
using namespace std;
int N;
int C[300000];
int dp[300000];
int path[300000];
int pos[300000];
int main() {
cin >> N;
for (int i = 1; i <= N; i++) cin >> C[i];
for (int i = 1; i <= N; i++) pos[i] = -1;
for (int i = 1; i <= N; i++) {
if (dp[i] != 0) continue;
int len = 0;
int u = i;
while (dp[u] == 0 && pos[u] == -1) {
pos[u] = len;
path[len++] = u;
u = C[u];
}
if (dp[u] != 0) {
int v = dp[u];
for (int j = len - 1; j >= 0; j--) {
v++;
dp[path[j]] = v;
}
} else {
int start = pos[u];
int cycle_len = len - start;
for (int j = start; j < len; j++)
dp[path[j]] = cycle_len;
int v = cycle_len;
for (int j = start - 1; j >= 0; j--) {
v++;
dp[path[j]] = v;
}
}
for (int j = 0; j < len; j++)
pos[path[j]] = -1;
}
int best = 1;
for (int i = 2; i <= N; i++)
if (dp[i] > dp[best]) best = i;
cout << best << " " << dp[best] << "\n";
return 0;
}
| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Accepted | 1ms | 316 KiB | ||||
| subtask2 | 20/20 | ||||||
| 2 | Accepted | 2ms | 316 KiB | ||||
| 3 | Accepted | 2ms | 316 KiB | ||||
| 4 | Accepted | 2ms | 316 KiB | ||||
| 5 | Accepted | 2ms | 316 KiB | ||||
| 6 | Accepted | 1ms | 316 KiB | ||||
| 7 | Accepted | 1ms | 316 KiB | ||||
| 8 | Accepted | 2ms | 316 KiB | ||||
| 9 | Accepted | 2ms | 352 KiB | ||||
| 10 | Accepted | 2ms | 316 KiB | ||||
| 11 | Accepted | 2ms | 416 KiB | ||||
| 12 | Accepted | 2ms | 664 KiB | ||||
| subtask3 | 18/18 | ||||||
| 13 | Accepted | 78ms | 2576 KiB | ||||
| 14 | Accepted | 79ms | 2560 KiB | ||||
| 15 | Accepted | 78ms | 2672 KiB | ||||
| 16 | Accepted | 79ms | 2828 KiB | ||||
| 17 | Accepted | 79ms | 2860 KiB | ||||
| 18 | Accepted | 79ms | 2880 KiB | ||||
| 19 | Accepted | 79ms | 2868 KiB | ||||
| 20 | Accepted | 79ms | 2976 KiB | ||||
| 21 | Accepted | 78ms | 3372 KiB | ||||
| 22 | Accepted | 79ms | 3520 KiB | ||||
| subtask4 | 42/42 | ||||||
| 23 | Accepted | 1ms | 316 KiB | ||||
| 24 | Accepted | 2ms | 316 KiB | ||||
| 25 | Accepted | 2ms | 316 KiB | ||||
| 26 | Accepted | 2ms | 316 KiB | ||||
| 27 | Accepted | 2ms | 316 KiB | ||||
| 28 | Accepted | 1ms | 316 KiB | ||||
| 29 | Accepted | 1ms | 316 KiB | ||||
| 30 | Accepted | 2ms | 316 KiB | ||||
| 31 | Accepted | 2ms | 352 KiB | ||||
| 32 | Accepted | 2ms | 316 KiB | ||||
| 33 | Accepted | 2ms | 416 KiB | ||||
| 34 | Accepted | 2ms | 664 KiB | ||||
| 35 | Accepted | 78ms | 2576 KiB | ||||
| 36 | Accepted | 79ms | 2560 KiB | ||||
| 37 | Accepted | 78ms | 2672 KiB | ||||
| 38 | Accepted | 79ms | 2828 KiB | ||||
| 39 | Accepted | 79ms | 2860 KiB | ||||
| 40 | Accepted | 79ms | 2880 KiB | ||||
| 41 | Accepted | 79ms | 2868 KiB | ||||
| 42 | Accepted | 79ms | 2976 KiB | ||||
| 43 | Accepted | 78ms | 3372 KiB | ||||
| 44 | Accepted | 79ms | 3520 KiB | ||||
| 45 | Accepted | 78ms | 2660 KiB | ||||
| 46 | Accepted | 79ms | 2612 KiB | ||||
| 47 | Accepted | 78ms | 2612 KiB | ||||
| 48 | Accepted | 78ms | 2724 KiB | ||||
| 49 | Accepted | 78ms | 2720 KiB | ||||
| 50 | Accepted | 79ms | 2836 KiB | ||||
| 51 | Accepted | 79ms | 2868 KiB | ||||
| 52 | Accepted | 78ms | 2684 KiB | ||||
| 53 | Accepted | 79ms | 2868 KiB | ||||
| 54 | Accepted | 79ms | 2868 KiB | ||||