248442026-02-16 01:54:26999Hírlánccpp17Elfogadva 80/80234ms29876 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
#define int long long
using namespace std;

vector<int> v,vis,scc,kil,dp,temp;
vector<vector<int>> w;

void dfs(int i){
    vis[i]=1;
    if(vis[v[i]]==0){
        dfs(v[i]);
    }
    kil.push_back(i);
}

void dfs2(int i, int cnt){
    vis[i]=1;
    scc[i]=cnt;
    for(int u:w[i]){
        if(vis[u]==0){
            dfs2(u,cnt);
        }
    }
}

void dfs3(int i){
    vis[i]=1;
    if(vis[v[i]]==0&&temp[scc[v[i]]]<2){
        dfs3(v[i]);
    }
    dp[i]=dp[v[i]]+1;
}

signed main() {
    int n;cin>>n;
    v.resize(n);
    vis.resize(n);
    scc.resize(n);
    w.resize(n);
    for(int i = 0;i<n;i++){
        cin>>v[i];
        v[i]--;
        w[v[i]].push_back(i);
    }
    for(int i = 0;i<n;i++){
        if(vis[i]==0){
            dfs(i);
        }
    }
    for(int i = 0;i<n;i++){
        vis[i]=0;
    }
    int cnt=0;
    reverse(kil.begin(),kil.end());
    for(int i = 0;i<n;i++){
        if(vis[kil[i]]==0){
            cnt++;
            dfs2(kil[i],cnt);
        }
    }
    temp.resize(cnt+1);
    for(int i = 0;i<n;i++){
        temp[scc[i]]++;
    }
    dp.resize(n);
    for(int i = 0;i<n;i++){
        vis[i]=0;
        if(temp[scc[i]]>1){
            dp[i]=temp[scc[i]];
        }
    }
    for(int i = 0;i<n;i++){
        if(vis[i]==0&&temp[scc[i]]<2){
            dfs3(i);
        }
    }
    int indi=0;
    for(int i = 0;i<n;i++){
        if(dp[i]>dp[indi])indi=i;
    }
    cout<<indi+1<<' '<<dp[indi]<<endl;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
subtask220/20
2Elfogadva2ms564 KiB
3Elfogadva2ms760 KiB
4Elfogadva2ms748 KiB
5Elfogadva2ms564 KiB
6Elfogadva2ms564 KiB
7Elfogadva2ms564 KiB
8Elfogadva2ms580 KiB
9Elfogadva2ms564 KiB
10Elfogadva2ms564 KiB
11Elfogadva2ms564 KiB
12Elfogadva2ms756 KiB
subtask318/18
13Elfogadva186ms19236 KiB
14Elfogadva174ms19388 KiB
15Elfogadva222ms19480 KiB
16Elfogadva175ms20020 KiB
17Elfogadva230ms21920 KiB
18Elfogadva178ms22436 KiB
19Elfogadva174ms22436 KiB
20Elfogadva234ms22436 KiB
21Elfogadva230ms26788 KiB
22Elfogadva174ms29876 KiB
subtask442/42
23Elfogadva1ms316 KiB
24Elfogadva2ms564 KiB
25Elfogadva2ms760 KiB
26Elfogadva2ms748 KiB
27Elfogadva2ms564 KiB
28Elfogadva2ms564 KiB
29Elfogadva2ms564 KiB
30Elfogadva2ms580 KiB
31Elfogadva2ms564 KiB
32Elfogadva2ms564 KiB
33Elfogadva2ms564 KiB
34Elfogadva2ms756 KiB
35Elfogadva186ms19236 KiB
36Elfogadva174ms19388 KiB
37Elfogadva222ms19480 KiB
38Elfogadva175ms20020 KiB
39Elfogadva230ms21920 KiB
40Elfogadva178ms22436 KiB
41Elfogadva174ms22436 KiB
42Elfogadva234ms22436 KiB
43Elfogadva230ms26788 KiB
44Elfogadva174ms29876 KiB
45Elfogadva192ms18084 KiB
46Elfogadva162ms18340 KiB
47Elfogadva163ms19620 KiB
48Elfogadva163ms18660 KiB
49Elfogadva158ms18928 KiB
50Elfogadva203ms19712 KiB
51Elfogadva158ms20388 KiB
52Elfogadva203ms21408 KiB
53Elfogadva209ms20520 KiB
54Elfogadva150ms21412 KiB