212972026-01-12 17:56:27horvayzsomborHírlánccpp17Time limit exceeded 38/80600ms28332 KiB
#include <iostream>
#include <vector>
#include <climits>

using namespace std;

void visit(int x, vector<char> &vis, vector<int> &t, vector<int> &ans)
{
    if(vis[x])
    {
        int size = 1;
        int to = t[x];

        vector<int> index;
        index.push_back(x);

        while(to != x)
        {
            index.push_back(to);

            size++;
            to = t[to];
        }

        for(int i = 0; i < (int)index.size(); i++)
        {
            ans[index[i]] = size;
        }

        return;
    }

    vis[x] = 1;
    visit(t[x], vis, t, ans);

    if(ans[x] != 0) return;

    ans[x] = ans[t[x]] + 1;
}

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

    vector<int> t(n + 1);

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

    int maxe = INT_MIN;
    int index;

    for(int i = 1; i <= n; i++)
    {
        if(ans[i] == 0)
        {
            vector<char> vis(n + 1);

            visit(i, vis, t, ans);

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

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

    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
subtask220/20
2Accepted2ms412 KiB
3Accepted2ms316 KiB
4Accepted4ms428 KiB
5Accepted6ms316 KiB
6Accepted4ms408 KiB
7Accepted6ms444 KiB
8Accepted8ms464 KiB
9Accepted14ms508 KiB
10Accepted2ms316 KiB
11Accepted2ms316 KiB
12Accepted1ms316 KiB
subtask318/18
13Accepted134ms2028 KiB
14Accepted86ms2284 KiB
15Accepted82ms3044 KiB
16Accepted86ms4072 KiB
17Accepted93ms9952 KiB
18Accepted97ms11460 KiB
19Accepted96ms11572 KiB
20Accepted101ms11452 KiB
21Accepted108ms23724 KiB
22Accepted104ms28332 KiB
subtask40/42
23Accepted1ms316 KiB
24Accepted2ms412 KiB
25Accepted2ms316 KiB
26Accepted4ms428 KiB
27Accepted6ms316 KiB
28Accepted4ms408 KiB
29Accepted6ms444 KiB
30Accepted8ms464 KiB
31Accepted14ms508 KiB
32Accepted2ms316 KiB
33Accepted2ms316 KiB
34Accepted1ms316 KiB
35Accepted134ms2028 KiB
36Accepted86ms2284 KiB
37Accepted82ms3044 KiB
38Accepted86ms4072 KiB
39Accepted93ms9952 KiB
40Accepted97ms11460 KiB
41Accepted96ms11572 KiB
42Accepted101ms11452 KiB
43Accepted108ms23724 KiB
44Accepted104ms28332 KiB
45Time limit exceeded575ms2160 KiB
46Time limit exceeded575ms2020 KiB
47Time limit exceeded577ms2276 KiB
48Time limit exceeded600ms2784 KiB
49Time limit exceeded582ms4072 KiB
50Time limit exceeded582ms6024 KiB
51Time limit exceeded582ms6032 KiB
52Time limit exceeded600ms6020 KiB
53Time limit exceeded584ms8492 KiB
54Time limit exceeded584ms11340 KiB