201312026-01-02 12:17:59VargaVivienHírlánccpp17Elfogadva 80/8087ms3872 KiB
#include <iostream>
#include <vector>

using namespace std;

vector <int> b, latogat, hossz, ut;

void bejaras(int start)
{
    ut.clear();
    int k;
    k = start;
    do
    {
        ut.push_back(k);
        latogat[k] = 1;
        k = b[k];
    }
    while(latogat[k] == 0);
    /*az elso kor egy tagja*/
    int db = 0, temp = k;
    if(latogat[k] == 1)
    {
        do
        {
            temp = b[temp];
            db++;
        }
        while (temp != k);
        do
        {
            latogat[temp] = 2;
            hossz[temp] = db;
            temp = b[temp];

        }
        while (temp != k);
    }
    for(int i = ut.size() - 1; i >= 0; i--)
    {
        if(latogat[ut[i]] == 1)
        {
            hossz[ut[i]] = hossz[b[ut[i]]] + 1;
            latogat[ut[i]] = 2;
        }
    }
}

int main()
{
    int n;
    cin >> n;
    b.resize(n + 1);
    for(int i = 1; i <= n; i++)
    {
        cin >> b[i];
    }
    latogat.resize(n);
    fill(latogat.begin(), latogat.end() - 1, 0);
    hossz.resize(n);
    for(int i = 1; i <= n; i++)
    {
        if(latogat[i] == 0)
        {
            bejaras(i);
        }
    }
    int maxi = 0, index;
    for(int i = 1; i <= n; i++)
    {
        if(hossz[i] > maxi)
        {
            maxi = hossz[i];
            index = i;
        }
    }
    cout << index << " " << maxi;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
subtask220/20
2Elfogadva2ms316 KiB
3Elfogadva2ms508 KiB
4Elfogadva2ms316 KiB
5Elfogadva2ms316 KiB
6Elfogadva2ms316 KiB
7Elfogadva2ms316 KiB
8Elfogadva1ms316 KiB
9Elfogadva2ms316 KiB
10Elfogadva2ms508 KiB
11Elfogadva2ms316 KiB
12Elfogadva2ms508 KiB
subtask318/18
13Elfogadva81ms2732 KiB
14Elfogadva82ms2728 KiB
15Elfogadva82ms2732 KiB
16Elfogadva82ms2728 KiB
17Elfogadva85ms3124 KiB
18Elfogadva83ms3248 KiB
19Elfogadva85ms3360 KiB
20Elfogadva82ms3368 KiB
21Elfogadva83ms3760 KiB
22Elfogadva85ms3872 KiB
subtask442/42
23Elfogadva1ms316 KiB
24Elfogadva2ms316 KiB
25Elfogadva2ms508 KiB
26Elfogadva2ms316 KiB
27Elfogadva2ms316 KiB
28Elfogadva2ms316 KiB
29Elfogadva2ms316 KiB
30Elfogadva1ms316 KiB
31Elfogadva2ms316 KiB
32Elfogadva2ms508 KiB
33Elfogadva2ms316 KiB
34Elfogadva2ms508 KiB
35Elfogadva81ms2732 KiB
36Elfogadva82ms2728 KiB
37Elfogadva82ms2732 KiB
38Elfogadva82ms2728 KiB
39Elfogadva85ms3124 KiB
40Elfogadva83ms3248 KiB
41Elfogadva85ms3360 KiB
42Elfogadva82ms3368 KiB
43Elfogadva83ms3760 KiB
44Elfogadva85ms3872 KiB
45Elfogadva79ms2528 KiB
46Elfogadva79ms2612 KiB
47Elfogadva78ms2628 KiB
48Elfogadva79ms2732 KiB
49Elfogadva79ms2868 KiB
50Elfogadva79ms2868 KiB
51Elfogadva82ms3176 KiB
52Elfogadva79ms2868 KiB
53Elfogadva79ms3128 KiB
54Elfogadva87ms3248 KiB