提出 #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
結果
AC × 3
AC × 30
セット名 テストケース
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