232582026-01-16 20:49:42horvayzsomborHírlánccpp17Elfogadva 80/8096ms12328 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms500 KiB
subtask220/20
2Elfogadva2ms492 KiB
3Elfogadva2ms316 KiB
4Elfogadva2ms316 KiB
5Elfogadva2ms316 KiB
6Elfogadva1ms428 KiB
7Elfogadva2ms408 KiB
8Elfogadva1ms344 KiB
9Elfogadva1ms408 KiB
10Elfogadva1ms316 KiB
11Elfogadva1ms316 KiB
12Elfogadva2ms316 KiB
subtask318/18
13Elfogadva82ms2868 KiB
14Elfogadva83ms2992 KiB
15Elfogadva85ms3144 KiB
16Elfogadva86ms3492 KiB
17Elfogadva89ms5688 KiB
18Elfogadva90ms6076 KiB
19Elfogadva89ms6196 KiB
20Elfogadva90ms6064 KiB
21Elfogadva93ms10412 KiB
22Elfogadva96ms12328 KiB
subtask442/42
23Elfogadva1ms316 KiB
24Elfogadva2ms492 KiB
25Elfogadva2ms316 KiB
26Elfogadva2ms316 KiB
27Elfogadva2ms316 KiB
28Elfogadva1ms428 KiB
29Elfogadva2ms408 KiB
30Elfogadva1ms344 KiB
31Elfogadva1ms408 KiB
32Elfogadva1ms316 KiB
33Elfogadva1ms316 KiB
34Elfogadva2ms316 KiB
35Elfogadva82ms2868 KiB
36Elfogadva83ms2992 KiB
37Elfogadva85ms3144 KiB
38Elfogadva86ms3492 KiB
39Elfogadva89ms5688 KiB
40Elfogadva90ms6076 KiB
41Elfogadva89ms6196 KiB
42Elfogadva90ms6064 KiB
43Elfogadva93ms10412 KiB
44Elfogadva96ms12328 KiB
45Elfogadva79ms2732 KiB
46Elfogadva81ms2868 KiB
47Elfogadva81ms3000 KiB
48Elfogadva79ms3180 KiB
49Elfogadva82ms3504 KiB
50Elfogadva82ms4268 KiB
51Elfogadva83ms4296 KiB
52Elfogadva82ms4268 KiB
53Elfogadva82ms4916 KiB
54Elfogadva83ms5940 KiB