提出 #10479576
ソースコード 拡げる
class UnionFind
def initialize(n); @data = Array.new(n,-1); end
def find(a); @data[a] < 0 ? a : @data[a] = find(@data[a]); end
def same?(a,b); find(a) == find(b); end
def size(a); -@data[find(a)]; end
def unite(a,b)
a = find(a); b = find(b)
return if a == b
a,b = b,a if @data[a] > @data[b]
@data[a] += @data[b]; @data[b] = a
end
end
n,m,k = gets.split.map &:to_i
UF = UnionFind.new(n)
FR = Array.new(n){[]}
BL = Array.new(n){[]}
m.times do
a,b = gets.split.map &:to_i
a -= 1; b -= 1
UF.unite(a,b)
FR[a] << b
FR[b] << a
end
k.times do
a,b = gets.split.map &:to_i
a -= 1; b -= 1
BL[a] << b
BL[b] << a
end
ans = n.times.map do |i|
cnt = UF.size(i)
FR[i].each do |f|
cnt -= 1 if UF.same?(i,f)
end
BL[i].each do |b|
cnt -= 1 if UF.same?(i,b)
end
cnt -= 1
end
puts ans.join(" ")
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Friend Suggestions |
| ユーザ | tamura2004 |
| 言語 | Ruby (2.3.3) |
| 得点 | 400 |
| コード長 | 888 Byte |
| 結果 | AC |
| 実行時間 | 692 ms |
| メモリ | 31864 KiB |
コンパイルエラー
./Main.rb:14: warning: `&' interpreted as argument prefix ./Main.rb:20: warning: `&' interpreted as argument prefix ./Main.rb:28: warning: `&' interpreted as argument prefix
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 400 / 400 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00-sample-00, 00-sample-01, 00-sample-02 |
| All | 00-sample-00, 00-sample-01, 00-sample-02, 01-handmade-00, 01-handmade-01, 01-handmade-02, 01-handmade-03, 01-handmade-04, 01-handmade-05, 01-handmade-06, 02-small-00, 02-small-01, 02-small-02, 02-small-03, 02-small-04, 02-small-05, 02-small-06, 02-small-07, 02-small-08, 02-small-09, 03-large-00, 03-large-01, 03-large-02, 03-large-03, 03-large-04, 03-large-05, 03-large-06, 03-large-07, 03-large-08, 03-large-09 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00-sample-00 | AC | 7 ms | 1788 KiB |
| 00-sample-01 | AC | 7 ms | 1788 KiB |
| 00-sample-02 | AC | 7 ms | 1788 KiB |
| 01-handmade-00 | AC | 7 ms | 1788 KiB |
| 01-handmade-01 | AC | 7 ms | 1788 KiB |
| 01-handmade-02 | AC | 317 ms | 18556 KiB |
| 01-handmade-03 | AC | 197 ms | 16632 KiB |
| 01-handmade-04 | AC | 692 ms | 31228 KiB |
| 01-handmade-05 | AC | 640 ms | 30392 KiB |
| 01-handmade-06 | AC | 640 ms | 31736 KiB |
| 02-small-00 | AC | 7 ms | 1788 KiB |
| 02-small-01 | AC | 7 ms | 1788 KiB |
| 02-small-02 | AC | 7 ms | 1788 KiB |
| 02-small-03 | AC | 7 ms | 1788 KiB |
| 02-small-04 | AC | 7 ms | 1788 KiB |
| 02-small-05 | AC | 7 ms | 1788 KiB |
| 02-small-06 | AC | 7 ms | 1788 KiB |
| 02-small-07 | AC | 7 ms | 1788 KiB |
| 02-small-08 | AC | 7 ms | 1788 KiB |
| 02-small-09 | AC | 7 ms | 1788 KiB |
| 03-large-00 | AC | 486 ms | 21044 KiB |
| 03-large-01 | AC | 545 ms | 20856 KiB |
| 03-large-02 | AC | 479 ms | 20728 KiB |
| 03-large-03 | AC | 472 ms | 19324 KiB |
| 03-large-04 | AC | 457 ms | 20088 KiB |
| 03-large-05 | AC | 452 ms | 19064 KiB |
| 03-large-06 | AC | 445 ms | 20276 KiB |
| 03-large-07 | AC | 529 ms | 22136 KiB |
| 03-large-08 | AC | 591 ms | 29948 KiB |
| 03-large-09 | AC | 684 ms | 31864 KiB |