201142026-01-02 07:44:38BikficcHírlánccpp17Elfogadva 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
subtask220/20
2Elfogadva1ms316 KiB
3Elfogadva2ms500 KiB
4Elfogadva2ms316 KiB
5Elfogadva2ms316 KiB
6Elfogadva1ms316 KiB
7Elfogadva1ms316 KiB
8Elfogadva1ms316 KiB
9Elfogadva1ms316 KiB
10Elfogadva1ms316 KiB
11Elfogadva1ms316 KiB
12Elfogadva1ms316 KiB
subtask318/18
13Elfogadva81ms2724 KiB
14Elfogadva79ms2612 KiB
15Elfogadva79ms2732 KiB
16Elfogadva81ms2728 KiB
17Elfogadva82ms3124 KiB
18Elfogadva82ms3244 KiB
19Elfogadva82ms3372 KiB
20Elfogadva82ms3248 KiB
21Elfogadva83ms3892 KiB
22Elfogadva82ms3756 KiB
subtask442/42
23Elfogadva1ms316 KiB
24Elfogadva1ms316 KiB
25Elfogadva2ms500 KiB
26Elfogadva2ms316 KiB
27Elfogadva2ms316 KiB
28Elfogadva1ms316 KiB
29Elfogadva1ms316 KiB
30Elfogadva1ms316 KiB
31Elfogadva1ms316 KiB
32Elfogadva1ms316 KiB
33Elfogadva1ms316 KiB
34Elfogadva1ms316 KiB
35Elfogadva81ms2724 KiB
36Elfogadva79ms2612 KiB
37Elfogadva79ms2732 KiB
38Elfogadva81ms2728 KiB
39Elfogadva82ms3124 KiB
40Elfogadva82ms3244 KiB
41Elfogadva82ms3372 KiB
42Elfogadva82ms3248 KiB
43Elfogadva83ms3892 KiB
44Elfogadva82ms3756 KiB
45Elfogadva78ms2728 KiB
46Elfogadva79ms2612 KiB
47Elfogadva78ms2728 KiB
48Elfogadva76ms2740 KiB
49Elfogadva79ms2872 KiB
50Elfogadva79ms2872 KiB
51Elfogadva79ms2868 KiB
52Elfogadva78ms2984 KiB
53Elfogadva79ms3128 KiB
54Elfogadva79ms3272 KiB