222942026-01-14 20:51:10helloworldHírlánccpp17Elfogadva 80/8079ms3520 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
subtask220/20
2Elfogadva2ms316 KiB
3Elfogadva2ms316 KiB
4Elfogadva2ms316 KiB
5Elfogadva2ms316 KiB
6Elfogadva1ms316 KiB
7Elfogadva1ms316 KiB
8Elfogadva2ms316 KiB
9Elfogadva2ms352 KiB
10Elfogadva2ms316 KiB
11Elfogadva2ms416 KiB
12Elfogadva2ms664 KiB
subtask318/18
13Elfogadva78ms2576 KiB
14Elfogadva79ms2560 KiB
15Elfogadva78ms2672 KiB
16Elfogadva79ms2828 KiB
17Elfogadva79ms2860 KiB
18Elfogadva79ms2880 KiB
19Elfogadva79ms2868 KiB
20Elfogadva79ms2976 KiB
21Elfogadva78ms3372 KiB
22Elfogadva79ms3520 KiB
subtask442/42
23Elfogadva1ms316 KiB
24Elfogadva2ms316 KiB
25Elfogadva2ms316 KiB
26Elfogadva2ms316 KiB
27Elfogadva2ms316 KiB
28Elfogadva1ms316 KiB
29Elfogadva1ms316 KiB
30Elfogadva2ms316 KiB
31Elfogadva2ms352 KiB
32Elfogadva2ms316 KiB
33Elfogadva2ms416 KiB
34Elfogadva2ms664 KiB
35Elfogadva78ms2576 KiB
36Elfogadva79ms2560 KiB
37Elfogadva78ms2672 KiB
38Elfogadva79ms2828 KiB
39Elfogadva79ms2860 KiB
40Elfogadva79ms2880 KiB
41Elfogadva79ms2868 KiB
42Elfogadva79ms2976 KiB
43Elfogadva78ms3372 KiB
44Elfogadva79ms3520 KiB
45Elfogadva78ms2660 KiB
46Elfogadva79ms2612 KiB
47Elfogadva78ms2612 KiB
48Elfogadva78ms2724 KiB
49Elfogadva78ms2720 KiB
50Elfogadva79ms2836 KiB
51Elfogadva79ms2868 KiB
52Elfogadva78ms2684 KiB
53Elfogadva79ms2868 KiB
54Elfogadva79ms2868 KiB