Submission #3402857


Source Code Expand

import java.util.*;

public class Main {
	public static void main(String args[]) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int Q = sc.nextInt();
		int P[] = new int[Q];
		int A[] = new int[Q];
		int B[] = new int[Q];
		for(int i = 0; i < Q; i++) {
			P[i] = sc.nextInt();
			A[i] = sc.nextInt();
			B[i] = sc.nextInt();
		}
		
		UnionFind.init(N);
		for(int i = 0; i < Q; i++) {
			if(P[i] == 0) {
				UnionFind.unite(A[i], B[i]);
			} else {
				if(UnionFind.same(A[i], B[i])) {
					System.out.println("Yes");
				} else {
					System.out.println("No");
				}
			}
		}
	}
}

class UnionFind {
	static int N;
	static int par[];
	static int rank[];
	public static void init(int n) {
		N = n;
		par = new int[N];
		rank = new int[N];
		for(int i = 0; i < N; i++) {
			par[i] = i;
			rank[i] = 0;
		}
	}
	
	public static int find(int x) {
		if(par[x] == x) {
			return x;
		} else {
			return par[x] = find(par[x]);
		}
	}
	
	public static void unite(int x, int y) {
		x = find(x);
		y = find(y);
		if(x == y) return;
		
		if(rank[x] < rank[y]) {
			par[x] = y;
		} else {
			par[y] = x;
			if(rank[x] == rank[y]) rank[x]++;
		}
	}
	
	public static boolean same(int x, int y) {
		return find(x) == find(y);
	}
}

Submission Info

Submission Time
Task B - Union Find
User YK0809
Language Java8 (OpenJDK 1.8.0)
Score 100
Code Size 1305 Byte
Status AC
Exec Time 1656 ms
Memory 159412 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 1
AC × 19
Set Name Test Cases
Sample 00_sample_01.txt
All 00_sample_01.txt, subtask_01_01.txt, subtask_01_02.txt, subtask_01_03.txt, subtask_01_04.txt, subtask_01_05.txt, subtask_01_06.txt, subtask_01_07.txt, subtask_01_08.txt, subtask_01_09.txt, subtask_01_10.txt, subtask_01_11.txt, subtask_01_12.txt, subtask_01_13.txt, subtask_01_14.txt, subtask_01_15.txt, subtask_01_16.txt, subtask_01_17.txt, subtask_01_18.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 93 ms 20688 KB
subtask_01_01.txt AC 1118 ms 94940 KB
subtask_01_02.txt AC 94 ms 19924 KB
subtask_01_03.txt AC 1531 ms 157728 KB
subtask_01_04.txt AC 1568 ms 158548 KB
subtask_01_05.txt AC 424 ms 51348 KB
subtask_01_06.txt AC 388 ms 45900 KB
subtask_01_07.txt AC 1539 ms 157568 KB
subtask_01_08.txt AC 1656 ms 156408 KB
subtask_01_09.txt AC 101 ms 20948 KB
subtask_01_10.txt AC 113 ms 20564 KB
subtask_01_11.txt AC 1575 ms 159348 KB
subtask_01_12.txt AC 1605 ms 159084 KB
subtask_01_13.txt AC 1326 ms 117388 KB
subtask_01_14.txt AC 141 ms 26064 KB
subtask_01_15.txt AC 1523 ms 157260 KB
subtask_01_16.txt AC 1572 ms 155760 KB
subtask_01_17.txt AC 1219 ms 150976 KB
subtask_01_18.txt AC 1259 ms 159412 KB