File tree Expand file tree Collapse file tree 1 file changed +56
-0
lines changed
Expand file tree Collapse file tree 1 file changed +56
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.util.* ;
3+ import java.io.* ;
4+
5+ public class Main {
6+ static int [] parent;
7+ static int n, m;
8+
9+ public static void main (String [] args ) throws Exception {
10+ BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
11+ StringTokenizer st = new StringTokenizer (br. readLine());
12+ StringBuilder sb = new StringBuilder ();
13+
14+ n = Integer . parseInt(st. nextToken());
15+ m = Integer . parseInt(st. nextToken());
16+
17+ parent = new int [n + 1 ];
18+
19+ for (int i = 0 ; i < n + 1 ; i++ ) {
20+ parent[i] = i;
21+ }
22+
23+ for (int i = 0 ; i < m; i++ ) {
24+ st = new StringTokenizer (br. readLine());
25+ int op = Integer . parseInt(st. nextToken());
26+ int a = Integer . parseInt(st. nextToken());
27+ int b = Integer . parseInt(st. nextToken());
28+
29+ if (op == 0 )
30+ union(a, b);
31+ else {
32+ if (find(a) == find(b))
33+ sb. append(" YES\n " );
34+ else sb. append(" NO\n " );
35+ }
36+ }
37+
38+ System . out. println(sb. toString());
39+ }
40+
41+ static int find (int x ) {
42+ if (x != parent[x]) {
43+ parent[x] = find(parent[x]);
44+ }
45+ return parent[x];
46+ }
47+
48+ static void union (int a , int b ) {
49+ int ra = find(a);
50+ int rb = find(b);
51+ if (ra != rb) {
52+ parent[rb] = ra;
53+ }
54+ }
55+ }
56+ ```
You can’t perform that action at this time.
0 commit comments