Submission #420239
Source Code Expand
class Node attr_accessor :parent, :rank def initialize(n) @parent = n @rank = 0 end end class UnionFindTree attr_accessor :nodes, :count def initialize(n) @nodes = (0..n).to_a.map { |i| Node.new(i) } @count = n end def find(x) return x if @nodes[x].parent == x return @nodes[x].parent = find(@nodes[x].parent) end def unite(a, b) a = find(a) b = find(b) return if a == b if @nodes[a].rank < @nodes[b].rank @nodes[a].parent = b else @nodes[b].parent = a @nodes[b].rank += 1 if @nodes[a].rank == @nodes[b].rank end @count -= 1 end def same?(a, b) find(a) == find(b) end def parents @nodes.map(&:parent) end def rank @nodes.map(&:rank) end end n, q = gets.split.map(&:to_i) uf = UnionFindTree.new(n) q.times do p, a, b = gets.split.map(&:to_i) case p when 0 uf.unite(a,b) when 1 puts uf.same?(a,b) ? "Yes" : "No" end end
Submission Info
Submission Time | |
---|---|
Task | B - Union Find |
User | takuk |
Language | Ruby (2.1.5p273) |
Score | 100 |
Code Size | 1134 Byte |
Status | AC |
Exec Time | 1479 ms |
Memory | 14440 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 100 / 100 | ||||
Status |
|
|
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 | 729 ms | 5092 KB |
subtask_01_01.txt | AC | 889 ms | 5740 KB |
subtask_01_02.txt | AC | 126 ms | 10852 KB |
subtask_01_03.txt | AC | 1281 ms | 5096 KB |
subtask_01_04.txt | AC | 1210 ms | 13656 KB |
subtask_01_05.txt | AC | 131 ms | 5096 KB |
subtask_01_06.txt | AC | 212 ms | 14440 KB |
subtask_01_07.txt | AC | 1134 ms | 5100 KB |
subtask_01_08.txt | AC | 1239 ms | 13664 KB |
subtask_01_09.txt | AC | 54 ms | 5100 KB |
subtask_01_10.txt | AC | 125 ms | 10860 KB |
subtask_01_11.txt | AC | 1119 ms | 5100 KB |
subtask_01_12.txt | AC | 1389 ms | 13656 KB |
subtask_01_13.txt | AC | 925 ms | 5356 KB |
subtask_01_14.txt | AC | 132 ms | 10984 KB |
subtask_01_15.txt | AC | 1096 ms | 5100 KB |
subtask_01_16.txt | AC | 1242 ms | 13652 KB |
subtask_01_17.txt | AC | 1274 ms | 13656 KB |
subtask_01_18.txt | AC | 1479 ms | 13664 KB |