213722026-01-12 21:51:03horvayzsomborHírlánccpp17Elfogadva 80/8097ms12852 KiB
#include <iostream>
#include <vector>
#include <climits>

using namespace std;

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

    int b = to[a];

    if(state[b] == 0)
    {
        dfs(b, d + 1, to, state, ans, depth);

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

        ans[b] = len;

        int x = to[b];

        while(x != b)
        {
            ans[x] = len;
            x = to[x];
        }
    }else
    {
        ans[a] = ans[b] + 1;
    }

    state[a] = 2;
}

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 = INT_MIN;
    int index;

    vector<int> state(n + 1);
    vector<int> depth(n + 1);

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

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

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

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms508 KiB
subtask220/20
2Elfogadva2ms508 KiB
3Elfogadva2ms316 KiB
4Elfogadva2ms316 KiB
5Elfogadva2ms316 KiB
6Elfogadva2ms356 KiB
7Elfogadva2ms316 KiB
8Elfogadva2ms508 KiB
9Elfogadva2ms316 KiB
10Elfogadva2ms316 KiB
11Elfogadva1ms316 KiB
12Elfogadva1ms316 KiB
subtask318/18
13Elfogadva83ms3512 KiB
14Elfogadva83ms3380 KiB
15Elfogadva87ms3752 KiB
16Elfogadva87ms4148 KiB
17Elfogadva90ms6196 KiB
18Elfogadva90ms6568 KiB
19Elfogadva90ms6708 KiB
20Elfogadva92ms6564 KiB
21Elfogadva92ms11200 KiB
22Elfogadva97ms12852 KiB
subtask442/42
23Elfogadva2ms316 KiB
24Elfogadva2ms508 KiB
25Elfogadva2ms316 KiB
26Elfogadva2ms316 KiB
27Elfogadva2ms316 KiB
28Elfogadva2ms356 KiB
29Elfogadva2ms316 KiB
30Elfogadva2ms508 KiB
31Elfogadva2ms316 KiB
32Elfogadva2ms316 KiB
33Elfogadva1ms316 KiB
34Elfogadva1ms316 KiB
35Elfogadva83ms3512 KiB
36Elfogadva83ms3380 KiB
37Elfogadva87ms3752 KiB
38Elfogadva87ms4148 KiB
39Elfogadva90ms6196 KiB
40Elfogadva90ms6568 KiB
41Elfogadva90ms6708 KiB
42Elfogadva92ms6564 KiB
43Elfogadva92ms11200 KiB
44Elfogadva97ms12852 KiB
45Elfogadva82ms3500 KiB
46Elfogadva82ms3492 KiB
47Elfogadva82ms3500 KiB
48Elfogadva82ms3752 KiB
49Elfogadva82ms4148 KiB
50Elfogadva83ms4900 KiB
51Elfogadva83ms4660 KiB
52Elfogadva86ms4660 KiB
53Elfogadva85ms5752 KiB
54Elfogadva83ms6584 KiB