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