194612025-12-09 19:26:47zoliHírlánccpp11Elfogadva 80/8087ms11708 KiB
#include <iostream>

using namespace std;
int N;
int C[200001], t[200001]; //t[i]-tavolsag i-bol indulva
char all[200001]; //allapotok tombje, all[i]=0 nem volt meglatogatva, 'A' aktiv latogatas, 'V' mar lejart
bool kor;
void be()
{
    cin>>N;
    for(int i=1;i<=N;i++) cin>>C[i];
}
void bejar(int i, int k)
{
    all[i]='A'; //egy aktiv bejarasban vagyunk
    t[i]=k;   //ideiglenesen lementjuk a jelenlegi hosszt, kesobb felulirjuk
    if(all[C[i]]=='V') // a kovetkezoje mar VOLT
    {
        t[i]=t[C[i]]+1;
        all[i]='V';
    }
    else if (all[C[i]]=='A') //egy korben vagyunk
        {
            t[i]=k-t[C[i]]+1;
            all[C[i]]='K';
            kor=true; //korkezdo
            all[i]='V';
        }
        else //nem volt meg latogatva
        {
            bejar(C[i],k+1);

            if(all[i]=='A'&& all[C[i]]=='V' && kor)
            {
                t[i]=t[C[i]];
                all[i]='V';
            }
            else if (all[i]=='K'&& all[C[i]]=='V' && kor)
            {
                kor=false;
                t[i]=t[C[i]];
                all[i]='V';
            }
            else if (all[i]=='A'&& all[C[i]]=='V' && !kor)
            {
                t[i]=t[C[i]]+1;
                all[i]='V';
            }else
            {
               // cout<<"mas allapot";
            }
        }
}
void keresmax()
{
    int maxi=1;
    for(int i=2;i<=N;i++)
        if(t[i]>t[maxi]) maxi=i;
    cout<<maxi<<" "<<t[maxi];
}
void feldolgoz()
{
    int i=1;
    while(i<=N)
    {
        if(all[i]=='V') i++;   // keresunk meg nem latogatott csomopontot
        else
        {
            bejar(i,0);   // onnan inditunk egy bejarast
        }
    }
}

int main()
{
    be();
    feldolgoz();
    keresmax();
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
subtask220/20
2Elfogadva2ms316 KiB
3Elfogadva2ms616 KiB
4Elfogadva2ms500 KiB
5Elfogadva2ms316 KiB
6Elfogadva2ms424 KiB
7Elfogadva1ms316 KiB
8Elfogadva2ms316 KiB
9Elfogadva1ms416 KiB
10Elfogadva1ms404 KiB
11Elfogadva2ms416 KiB
12Elfogadva2ms316 KiB
subtask318/18
13Elfogadva75ms2100 KiB
14Elfogadva75ms2100 KiB
15Elfogadva78ms2356 KiB
16Elfogadva76ms2880 KiB
17Elfogadva81ms5536 KiB
18Elfogadva82ms5376 KiB
19Elfogadva79ms5172 KiB
20Elfogadva79ms5296 KiB
21Elfogadva82ms9776 KiB
22Elfogadva87ms11708 KiB
subtask442/42
23Elfogadva1ms508 KiB
24Elfogadva2ms316 KiB
25Elfogadva2ms616 KiB
26Elfogadva2ms500 KiB
27Elfogadva2ms316 KiB
28Elfogadva2ms424 KiB
29Elfogadva1ms316 KiB
30Elfogadva2ms316 KiB
31Elfogadva1ms416 KiB
32Elfogadva1ms404 KiB
33Elfogadva2ms416 KiB
34Elfogadva2ms316 KiB
35Elfogadva75ms2100 KiB
36Elfogadva75ms2100 KiB
37Elfogadva78ms2356 KiB
38Elfogadva76ms2880 KiB
39Elfogadva81ms5536 KiB
40Elfogadva82ms5376 KiB
41Elfogadva79ms5172 KiB
42Elfogadva79ms5296 KiB
43Elfogadva82ms9776 KiB
44Elfogadva87ms11708 KiB
45Elfogadva75ms2100 KiB
46Elfogadva75ms2100 KiB
47Elfogadva74ms2100 KiB
48Elfogadva75ms3684 KiB
49Elfogadva75ms2592 KiB
50Elfogadva76ms3380 KiB
51Elfogadva76ms4844 KiB
52Elfogadva76ms3380 KiB
53Elfogadva78ms4460 KiB
54Elfogadva79ms5180 KiB