200322025-12-31 10:22:16PappMatyasHírlánccpp17Time limit exceeded 38/80600ms9748 KiB
#include <iostream>
#include <vector>

using namespace std;

int n;
vector<int> send;
vector<int> length;
vector<int> current;
vector<int> pos;

static void GetLength(int k)
{
    int e = current.size();
    if (length[k] != -1)
    {
        for (int i = 0; i < e; i++)
        {
            length[current[i]] = length[k] + e - i;
        }
        return;
    }
    if (pos[k] != -1)
    {
        int i = pos[k];
        for (int j = i; j < e; j++)
        {
            length[current[j]] = e - i;
        }
        for (int j = 0; j < i; j++)
        {
            length[current[j]] = e - j;
        }
        return;
    }
    pos[k] = e;
    current.push_back(k);
    GetLength(send[k] - 1);
}

int main()
{
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        int in;
        cin >> in;
        send.push_back(in);
        length.push_back(-1);
        pos.push_back(-1);
    }
    for (int i = 0; i < n; i++)
    {
        if (length[i] == -1)
        {
            fill(pos.begin(), pos.end(), -1);
            current.clear();
            GetLength(i);
        }
    }
    int max = 0, s = -1;
    for (int i = 0; i < n; i++)
    {
        if (length[i] > max)
        {
            max = length[i];
            s = i + 1;
        }
    }
    cout << s << " " << max;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
subtask220/20
2Accepted1ms316 KiB
3Accepted2ms508 KiB
4Accepted2ms332 KiB
5Accepted2ms316 KiB
6Accepted2ms316 KiB
7Accepted2ms508 KiB
8Accepted2ms384 KiB
9Accepted2ms508 KiB
10Accepted2ms316 KiB
11Accepted2ms316 KiB
12Accepted2ms500 KiB
subtask318/18
13Accepted284ms2720 KiB
14Accepted101ms2732 KiB
15Accepted86ms2992 KiB
16Accepted82ms3140 KiB
17Accepted83ms5024 KiB
18Accepted86ms5508 KiB
19Accepted86ms5520 KiB
20Accepted86ms5528 KiB
21Accepted90ms8468 KiB
22Accepted87ms9748 KiB
subtask40/42
23Accepted2ms316 KiB
24Accepted1ms316 KiB
25Accepted2ms508 KiB
26Accepted2ms332 KiB
27Accepted2ms316 KiB
28Accepted2ms316 KiB
29Accepted2ms508 KiB
30Accepted2ms384 KiB
31Accepted2ms508 KiB
32Accepted2ms316 KiB
33Accepted2ms316 KiB
34Accepted2ms500 KiB
35Accepted284ms2720 KiB
36Accepted101ms2732 KiB
37Accepted86ms2992 KiB
38Accepted82ms3140 KiB
39Accepted83ms5024 KiB
40Accepted86ms5508 KiB
41Accepted86ms5520 KiB
42Accepted86ms5528 KiB
43Accepted90ms8468 KiB
44Accepted87ms9748 KiB
45Time limit exceeded582ms2700 KiB
46Time limit exceeded583ms2812 KiB
47Time limit exceeded583ms2964 KiB
48Time limit exceeded600ms2836 KiB
49Time limit exceeded584ms3220 KiB
50Time limit exceeded584ms3740 KiB
51Time limit exceeded584ms3652 KiB
52Time limit exceeded600ms3784 KiB
53Time limit exceeded579ms4504 KiB
54Time limit exceeded580ms5532 KiB