-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path13023_ABCDE.java
More file actions
52 lines (45 loc) ยท 1.66 KB
/
13023_ABCDE.java
File metadata and controls
52 lines (45 loc) ยท 1.66 KB
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
43
44
45
46
47
48
49
50
51
52
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Main {
static int N, M;
static boolean visited[];
static ArrayList<ArrayList<Integer>> list;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
list = new ArrayList<>(); //์ธ์ ๋ฆฌ์คํธ ์์ฑ
for(int i=0; i<N; i++) list.add(new ArrayList<>()); //์ธ์ ๋ฆฌ์คํธ ์ด๊ธฐํ
for(int i=0; i<M; i++) { //์
๋ ฅ๊ฐ ๋ฐ๊ณ ๋ฌดํฅ๊ทธ๋ํ ์ด๊ธฐํ
st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
list.get(x).add(y);
list.get(y).add(x);
}
for(int i=0; i<N; i++) { //๊ฐ ์ ์ ์์๋ถํฐ ์ถ๋ฐ
visited = new boolean[N]; //๋ฐฉ๋ฌธ๋ฐฐ์ด ๋งค๋ฒ ์ด๊ธฐํ
visited[i] = true;
dfs(i, 0); //dfs๋ก i๋ฒ์งธ ์ ์ ์์๋ถํฐ ํ์
}
System.out.println(0); //์ข
๋ฃ๊ฐ ๋์ง์๋๋ค๋ฉด 0
}
private static void dfs(int idx, int cnt) {
if(cnt > 3) { //4๊ฐ์ ์น๊ตฌ(์ ์ )์ด ์ฐ๊ฒฐ๋์ด ์๋ค๋ฉด ์กฐ๊ฑด๋ง์กฑ
System.out.println(1);
System.exit(0);
}
for(int i=0; i<list.get(idx).size(); i++) { //i์ ์ ์ ์ฐ๊ฒฐ๋ ์ธ์ ์ ์ ๊ฐ์๋งํผ
int item = list.get(idx).get(i); //์ธ์ ์ ์ ํ๊ฐ์ฉ ๊บผ๋ด์
if(!visited[item]) { //๋ฐฉ๋ฌธ๋น๊ต
visited[item] = true;
dfs(item, cnt + 1);
visited[item] = false; //๋ฐฑํธ๋ํน
}
}
}
}