201142026-01-02 07:44:38BikficcHírlánccpp17Accepted 80/8083ms3892 KiB
#include <iostream>
#include <vector>
using namespace std;

int n;
vector <int> v, lat, ut, hossz;

void bejar(int k)
{
    int ind=k;
    do
    {
        lat[ind]=1;
        ut.push_back(ind);
        ind=v[ind];
    }
    while (lat[ind]==0);

    int tmp;
    if (lat[ind]==1)
    {
        tmp=ind;
        int nr=0;
        do
        {
            nr++;
            tmp=v[tmp];
        }
        while (tmp!=ind);
        do
        {
            hossz[tmp]=nr;
            lat[tmp]=2;
            tmp=v[tmp];
        }
        while(tmp!=ind);
    }
    tmp=ind;
    for(int i=ut.size()-1;i>=0; i--)
    {
        if (lat[ut[i]]==1)
        {
            hossz[ut[i]]=hossz[v[ut[i]]]+1;
            lat[ut[i]]=2;

        }
    }
}

int main()
{
    cin >> n;
    v.resize(n+1);
    for (int i=1; i<=n; i++)
    {
        cin >> v[i];
    }
    lat.resize(n+1);
    hossz.resize(n+1);
    fill(lat.begin(), lat.end()-1,0);
    fill(hossz.begin(), hossz.end()-1,0);
    for (int i=1; i<=n; i++)
    {
        if (lat[i]==0)
        {
            bejar(i);
            ut.clear();
        }
    }

    int max=0, csp=0;
    for (int i=1; i<=n; i++)
    {
        if (hossz[i] > max)
        {
            max=hossz[i];
            csp=i;
        }
    }
    cout << csp << " " << max;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
subtask220/20
2Accepted1ms316 KiB
3Accepted2ms500 KiB
4Accepted2ms316 KiB
5Accepted2ms316 KiB
6Accepted1ms316 KiB
7Accepted1ms316 KiB
8Accepted1ms316 KiB
9Accepted1ms316 KiB
10Accepted1ms316 KiB
11Accepted1ms316 KiB
12Accepted1ms316 KiB
subtask318/18
13Accepted81ms2724 KiB
14Accepted79ms2612 KiB
15Accepted79ms2732 KiB
16Accepted81ms2728 KiB
17Accepted82ms3124 KiB
18Accepted82ms3244 KiB
19Accepted82ms3372 KiB
20Accepted82ms3248 KiB
21Accepted83ms3892 KiB
22Accepted82ms3756 KiB
subtask442/42
23Accepted1ms316 KiB
24Accepted1ms316 KiB
25Accepted2ms500 KiB
26Accepted2ms316 KiB
27Accepted2ms316 KiB
28Accepted1ms316 KiB
29Accepted1ms316 KiB
30Accepted1ms316 KiB
31Accepted1ms316 KiB
32Accepted1ms316 KiB
33Accepted1ms316 KiB
34Accepted1ms316 KiB
35Accepted81ms2724 KiB
36Accepted79ms2612 KiB
37Accepted79ms2732 KiB
38Accepted81ms2728 KiB
39Accepted82ms3124 KiB
40Accepted82ms3244 KiB
41Accepted82ms3372 KiB
42Accepted82ms3248 KiB
43Accepted83ms3892 KiB
44Accepted82ms3756 KiB
45Accepted78ms2728 KiB
46Accepted79ms2612 KiB
47Accepted78ms2728 KiB
48Accepted76ms2740 KiB
49Accepted79ms2872 KiB
50Accepted79ms2872 KiB
51Accepted79ms2868 KiB
52Accepted78ms2984 KiB
53Accepted79ms3128 KiB
54Accepted79ms3272 KiB