File tree Expand file tree Collapse file tree 1 file changed +57
-0
lines changed
Expand file tree Collapse file tree 1 file changed +57
-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+
7+ static int n, m;
8+ static List<Integer > [] friends;
9+ static boolean [] visited;
10+ static boolean found = false ;
11+
12+ public static void main (String [] args ) throws Exception {
13+ BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
14+ StringTokenizer st = new StringTokenizer (br. readLine());
15+
16+ n = Integer . parseInt(st. nextToken());
17+ m = Integer . parseInt(st. nextToken());
18+
19+ friends = new ArrayList [n];
20+ for (int i = 0 ; i < n; i++ ) friends[i] = new ArrayList<> ();
21+
22+ for (int i = 0 ; i < m; i++ ) {
23+ st = new StringTokenizer (br. readLine());
24+ int a = Integer . parseInt(st. nextToken());
25+ int b = Integer . parseInt(st. nextToken());
26+ friends[a]. add(b);
27+ friends[b]. add(a);
28+ }
29+
30+ visited = new boolean [n];
31+ for (int i = 0 ; i < n && ! found; i++ ) {
32+ visited[i] = true ;
33+ dfs(i, 1 );
34+ visited[i] = false ;
35+ }
36+
37+ System . out. println(found ? 1 : 0 );
38+ }
39+
40+ static void dfs (int cur , int depth ) {
41+ if (found) return ;
42+ if (depth == 5 ) {
43+ found = true ;
44+ return ;
45+ }
46+
47+ for (int next : friends[cur]) {
48+ if (visited[next]) continue ;
49+ visited[next] = true ;
50+ dfs(next, depth + 1 );
51+ visited[next] = false ;
52+ if (found) return ;
53+ }
54+ }
55+ }
56+
57+ ```
You can’t perform that action at this time.
0 commit comments