-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathboj_1717.java
More file actions
69 lines (61 loc) · 1.48 KB
/
boj_1717.java
File metadata and controls
69 lines (61 loc) · 1.48 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package baekjoonA;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
/**
*
* @author TAEK
* @category Disjoint-Set
*
* @see 백준 1717번: 집합의 표현 <br>
* 메모리: 52620 KB <br>
* 시간: 1448 ms
* @since 2020-10-29
*
*/
public class boj_1717 {
private static int n;
private static int m;
private static boolean[][] map;
private static int[] parent;
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
n = Integer.parseInt(st.nextToken());
m = Integer.parseInt(st.nextToken());
makeSet();
for(int i=0;i<m;i++) {
st = new StringTokenizer(br.readLine());
int input = Integer.parseInt(st.nextToken());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
if(input == 1) {
a = find(a);
b = find(b);
if(a == b) {
System.out.println("YES");
}else {
System.out.println("NO");
}
}else {
disjoint(a,b);
}
}
}
static void makeSet() {
parent = new int[n+1];
for(int i=0;i<=n;i++) {
parent[i] = i;
}
}
static void disjoint(int a,int b) {
a = find(a);
b = find(b);
if(a == b) return;
parent[b] = a;
}
static int find(int num) {
if(num == parent[num]) return num;
return parent[num] = find(parent[num]);
}
}