229502026-01-16 09:28:44ZsoltHírlánccpp17Elfogadva 80/80116ms16080 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n,x;
    cin>>n;
    vector<vector<int>>g(n+1);
    vector<int>utak(n+1);
    vector<int>hova(n+1,0);
    for(int i=1; i<=n; i++)
    {
        cin>>x;
        g[x].push_back(i);
        utak[i]=x;
        hova[x]++;
    }
    vector<int>korben(n+1,1);
    queue<int>q;
    for(int i=1; i<=n; i++)
    {
        if(hova[i]==0)
        {
            q.push(i);
        }
    }
    while(!q.empty())
    {
        x=q.front();
        q.pop();
        korben[x]=0;
        hova[utak[x]]--;
        if(hova[utak[x]]==0)
        {
            q.push(utak[x]);
        }
    }
    vector<int>volt(n+1,0);
    vector<int>dp(n+1,0);
    int akt,db;
    for(int i=1; i<=n; i++)
    {
        if(korben[i] && volt[i]==0)
        {
            akt=i;
            db=0;
            do
            {
                volt[akt]++;
                akt=utak[akt];
                db++;
            }
            while(akt!=i);
            akt=i;
            do
            {
                dp[akt]=db;
                akt=utak[akt];
            }
            while(akt!=i);
        }
    }
    for(int i=1; i<=n; i++)
    {
        if(korben[i]==1)
        {
            q.push(i);
        }
    }
    while(!q.empty())
    {
        x=q.front();
        q.pop();
        for(int v:g[x])
        {
            if(korben[v]==0)
            {
                dp[v]=dp[x]+1;
                q.push(v);
            }
        }
    }
    int k=1,maxdb=dp[1];
    for(int i=2; i<=n; i++)
    {
        if(dp[i]>maxdb)
            {
                maxdb=dp[i];
                k=i;
            }
    }
    cout<<k<<" "<<maxdb;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
subtask220/20
2Elfogadva2ms316 KiB
3Elfogadva2ms316 KiB
4Elfogadva2ms316 KiB
5Elfogadva2ms756 KiB
6Elfogadva1ms316 KiB
7Elfogadva1ms316 KiB
8Elfogadva1ms316 KiB
9Elfogadva1ms316 KiB
10Elfogadva1ms564 KiB
11Elfogadva1ms564 KiB
12Elfogadva1ms564 KiB
subtask318/18
13Elfogadva96ms15920 KiB
14Elfogadva79ms15956 KiB
15Elfogadva97ms16004 KiB
16Elfogadva81ms16080 KiB
17Elfogadva101ms15968 KiB
18Elfogadva81ms15924 KiB
19Elfogadva81ms15924 KiB
20Elfogadva97ms16036 KiB
21Elfogadva71ms15928 KiB
22Elfogadva82ms15960 KiB
subtask442/42
23Elfogadva1ms316 KiB
24Elfogadva2ms316 KiB
25Elfogadva2ms316 KiB
26Elfogadva2ms316 KiB
27Elfogadva2ms756 KiB
28Elfogadva1ms316 KiB
29Elfogadva1ms316 KiB
30Elfogadva1ms316 KiB
31Elfogadva1ms316 KiB
32Elfogadva1ms564 KiB
33Elfogadva1ms564 KiB
34Elfogadva1ms564 KiB
35Elfogadva96ms15920 KiB
36Elfogadva79ms15956 KiB
37Elfogadva97ms16004 KiB
38Elfogadva81ms16080 KiB
39Elfogadva101ms15968 KiB
40Elfogadva81ms15924 KiB
41Elfogadva81ms15924 KiB
42Elfogadva97ms16036 KiB
43Elfogadva71ms15928 KiB
44Elfogadva82ms15960 KiB
45Elfogadva114ms13348 KiB
46Elfogadva116ms13108 KiB
47Elfogadva116ms13108 KiB
48Elfogadva75ms13112 KiB
49Elfogadva86ms13108 KiB
50Elfogadva105ms13108 KiB
51Elfogadva112ms13620 KiB
52Elfogadva92ms13888 KiB
53Elfogadva90ms13112 KiB
54Elfogadva86ms13108 KiB