// 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 | Összpont | Teszt | Verdikt | Idő | Memória | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Elfogadva | 1ms | 316 KiB | ||||
| subtask2 | 20/20 | ||||||
| 2 | Elfogadva | 2ms | 564 KiB | ||||
| 3 | Elfogadva | 2ms | 760 KiB | ||||
| 4 | Elfogadva | 2ms | 748 KiB | ||||
| 5 | Elfogadva | 2ms | 564 KiB | ||||
| 6 | Elfogadva | 2ms | 564 KiB | ||||
| 7 | Elfogadva | 2ms | 564 KiB | ||||
| 8 | Elfogadva | 2ms | 580 KiB | ||||
| 9 | Elfogadva | 2ms | 564 KiB | ||||
| 10 | Elfogadva | 2ms | 564 KiB | ||||
| 11 | Elfogadva | 2ms | 564 KiB | ||||
| 12 | Elfogadva | 2ms | 756 KiB | ||||
| subtask3 | 18/18 | ||||||
| 13 | Elfogadva | 186ms | 19236 KiB | ||||
| 14 | Elfogadva | 174ms | 19388 KiB | ||||
| 15 | Elfogadva | 222ms | 19480 KiB | ||||
| 16 | Elfogadva | 175ms | 20020 KiB | ||||
| 17 | Elfogadva | 230ms | 21920 KiB | ||||
| 18 | Elfogadva | 178ms | 22436 KiB | ||||
| 19 | Elfogadva | 174ms | 22436 KiB | ||||
| 20 | Elfogadva | 234ms | 22436 KiB | ||||
| 21 | Elfogadva | 230ms | 26788 KiB | ||||
| 22 | Elfogadva | 174ms | 29876 KiB | ||||
| subtask4 | 42/42 | ||||||
| 23 | Elfogadva | 1ms | 316 KiB | ||||
| 24 | Elfogadva | 2ms | 564 KiB | ||||
| 25 | Elfogadva | 2ms | 760 KiB | ||||
| 26 | Elfogadva | 2ms | 748 KiB | ||||
| 27 | Elfogadva | 2ms | 564 KiB | ||||
| 28 | Elfogadva | 2ms | 564 KiB | ||||
| 29 | Elfogadva | 2ms | 564 KiB | ||||
| 30 | Elfogadva | 2ms | 580 KiB | ||||
| 31 | Elfogadva | 2ms | 564 KiB | ||||
| 32 | Elfogadva | 2ms | 564 KiB | ||||
| 33 | Elfogadva | 2ms | 564 KiB | ||||
| 34 | Elfogadva | 2ms | 756 KiB | ||||
| 35 | Elfogadva | 186ms | 19236 KiB | ||||
| 36 | Elfogadva | 174ms | 19388 KiB | ||||
| 37 | Elfogadva | 222ms | 19480 KiB | ||||
| 38 | Elfogadva | 175ms | 20020 KiB | ||||
| 39 | Elfogadva | 230ms | 21920 KiB | ||||
| 40 | Elfogadva | 178ms | 22436 KiB | ||||
| 41 | Elfogadva | 174ms | 22436 KiB | ||||
| 42 | Elfogadva | 234ms | 22436 KiB | ||||
| 43 | Elfogadva | 230ms | 26788 KiB | ||||
| 44 | Elfogadva | 174ms | 29876 KiB | ||||
| 45 | Elfogadva | 192ms | 18084 KiB | ||||
| 46 | Elfogadva | 162ms | 18340 KiB | ||||
| 47 | Elfogadva | 163ms | 19620 KiB | ||||
| 48 | Elfogadva | 163ms | 18660 KiB | ||||
| 49 | Elfogadva | 158ms | 18928 KiB | ||||
| 50 | Elfogadva | 203ms | 19712 KiB | ||||
| 51 | Elfogadva | 158ms | 20388 KiB | ||||
| 52 | Elfogadva | 203ms | 21408 KiB | ||||
| 53 | Elfogadva | 209ms | 20520 KiB | ||||
| 54 | Elfogadva | 150ms | 21412 KiB | ||||