232572026-01-16 20:20:24horvayzsomborHírlánccpp17Wrong answer 0/80189ms12200 KiB
#include <iostream>
#include <vector>

using namespace std;

void dfs(int a, int d, vector<int> &to, vector<int> &ans, vector<char> &vis, vector<int> &depth)
{
    vis[a] = 1;
    depth[a] = d;

    int b = to[a];

    if(!ans[b])
    {
        ans[a] = ans[b] + 1;
    }else if(vis[b])
    {
        int len = d - depth[b] + 1;
        ans[a] = len;

        int x = b;
        while(x != a)
        {
            ans[x] = len;
            x = to[x];
        }
    }else
    {
        dfs(b, d + 1, to, ans, vis, depth);
        if(ans[a] == 0) ans[a] = ans[b] + 1;
    }

    vis[a] = 0;
}

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

    vector<int> to(n + 1);

    for(int i = 1; i <= n; i++)
    {
        cin >> to[i];
    }
    
    vector<int> ans(n + 1);

    int maxe = -1;
    int index;

    vector<char> vis(n + 1);
    vector<int> depth(n + 1);

    for(int i = 1; i <= n; i++)
    {
        if(!ans[i])
        {
            dfs(i, 0, to, ans, vis, depth);
        }

        if(ans[i] > maxe)
        {
            maxe = ans[i];
            index = i;
        }
    }

    cout << index << " " << maxe;

    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
subtask20/20
2Wrong answer2ms508 KiB
3Wrong answer3ms316 KiB
4Wrong answer3ms336 KiB
5Wrong answer2ms316 KiB
6Wrong answer2ms316 KiB
7Wrong answer2ms316 KiB
8Wrong answer2ms316 KiB
9Wrong answer2ms316 KiB
10Wrong answer1ms316 KiB
11Wrong answer1ms316 KiB
12Wrong answer2ms316 KiB
subtask30/18
13Wrong answer97ms2740 KiB
14Wrong answer116ms2988 KiB
15Wrong answer130ms3124 KiB
16Wrong answer143ms3500 KiB
17Wrong answer155ms5684 KiB
18Wrong answer162ms6064 KiB
19Wrong answer158ms6196 KiB
20Wrong answer164ms6196 KiB
21Wrong answer170ms10548 KiB
22Wrong answer189ms12200 KiB
subtask40/42
23Accepted1ms316 KiB
24Wrong answer2ms508 KiB
25Wrong answer3ms316 KiB
26Wrong answer3ms336 KiB
27Wrong answer2ms316 KiB
28Wrong answer2ms316 KiB
29Wrong answer2ms316 KiB
30Wrong answer2ms316 KiB
31Wrong answer2ms316 KiB
32Wrong answer1ms316 KiB
33Wrong answer1ms316 KiB
34Wrong answer2ms316 KiB
35Wrong answer97ms2740 KiB
36Wrong answer116ms2988 KiB
37Wrong answer130ms3124 KiB
38Wrong answer143ms3500 KiB
39Wrong answer155ms5684 KiB
40Wrong answer162ms6064 KiB
41Wrong answer158ms6196 KiB
42Wrong answer164ms6196 KiB
43Wrong answer170ms10548 KiB
44Wrong answer189ms12200 KiB
45Wrong answer93ms2884 KiB
46Wrong answer109ms2732 KiB
47Wrong answer122ms2868 KiB
48Wrong answer130ms2988 KiB
49Wrong answer145ms3380 KiB
50Wrong answer164ms4264 KiB
51Wrong answer144ms4272 KiB
52Wrong answer187ms4308 KiB
53Wrong answer148ms4912 KiB
54Wrong answer155ms6052 KiB