File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed
Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.io.* ;
3+ import java.util.* ;
4+
5+ public class Main {
6+ static int n;
7+ static int [] arr;
8+ static boolean [] visited;
9+ static Set<Integer > result = new TreeSet<> ();
10+
11+ public static void main (String [] args ) throws IOException {
12+ BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
13+ StringTokenizer st;
14+ StringBuilder sb = new StringBuilder ();
15+
16+ n = Integer . parseInt(br. readLine());
17+
18+ arr = new int [n + 1 ];
19+ for (int i = 1 ; i <= n; i++ ) {
20+ arr[i] = Integer . parseInt(br. readLine());
21+ }
22+
23+ for (int i = 1 ; i <= n; i++ ) {
24+ visited = new boolean [n + 1 ];
25+ dfs(i, i);
26+ }
27+
28+ sb. append(result. size()). append(" \n " );
29+ for (int x : result) sb. append(x). append(" \n " );
30+ System . out. print(sb);
31+ }
32+
33+ static void dfs (int start , int cur ) {
34+ if (! visited[cur]) {
35+ visited[cur] = true ;
36+ dfs(start, arr[cur]);
37+ } else {
38+ if (cur == start) {
39+ result. add(cur);
40+ }
41+ }
42+ }
43+ }
44+ ```
You can’t perform that action at this time.
0 commit comments