1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #include<cstdio> #include<algorithm> using namespace std; int arr[1002]; bool visited[1002]; bool finished[1002]; int ans[102]; int i,n,temp,tot,cnt; void func(int node){ visited[node]=true; int next=arr[node]; if(visited[next]){ if(!finished[next]){ for(i=next; i!=node; i=arr[i]){ cnt++; ans[cnt]=i; } cnt++; ans[cnt]=i; } } else func(next); finished[node]=true; } int main(void){ scanf("%d", &n); for(int i=1; i<=n; i++){ scanf("%d", &arr[i]); } for(int i=1; i<=n; i++){ if(!visited[i]){ func(i); } } sort(ans+1,ans+cnt+1); printf("%d\n",cnt); for(int i=1; i<=cnt; i++) printf("%d\n", ans[i]); return 0; } | cs |
9466 텀프로젝트(https://withallmy.tistory.com/186)와 매우 비슷하다.
물론 한번에 풀지는 못했...^_T
'백준 2 > 그래프' 카테고리의 다른 글
| [백준 2660] 회장 뽑기 (0) | 2020.12.08 |
|---|---|
| [백준 1389] 케빈 베이컨의 6단계 법칙 (0) | 2020.12.08 |
| [백준 9372] 상근이의 여행 (0) | 2020.12.08 |
| [백준 4963] 섬의 개수 (0) | 2020.12.08 |
| [백준 6593] 상범 빌딩 (C++) (0) | 2020.12.08 |