Submission #611609


Source Code Expand

class Apex
  attr_reader :sides, :num, :h
  def initialize(num, h)
    @sides = []
    @h = h
    @num = num
  end
  def remove
    return false if h == 1 || @sides.size != 1
    sides.first.remove
    true
  end
end
class Side
  attr_reader :num
  def initialize(num, a, b)
    @num = num
    @apex0 = a
    @apex1 = b
    a.sides << self
    b.sides << self
  end
  def remove
    @apex0.sides.delete(self)
    @apex1.sides.delete(self)
  end
end

n, x = gets.split.map(&:to_i)
hs = gets.split.map(&:to_i)
hs[x - 1] = 1
n.times do |i|
  hs[i] = Apex.new(i, hs[i])
end
(n - 1).times do |i|
  a, b = gets.split.map{|s| s.to_i - 1}
  s = Side.new(i, hs[a], hs[b])
end
ans = (n - 1) * 2
loop do
  found = false
  hs.each do |h|
    if h.remove
      ans -= 2
      found = true
    end
  end
  break unless found
end

puts ans

Submission Info

Submission Time
Task B - ツリーグラフ
User mamorun
Language Ruby (1.9.3)
Score 100
Code Size 876 Byte
Status AC
Exec Time 54 ms
Memory 4224 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 2
AC × 20
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt
All subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_line01.txt, subtask1_line02.txt, subtask1_line03.txt, subtask1_line04.txt, subtask1_line05.txt, subtask1_line06.txt, subtask1_random01.txt, subtask1_random02.txt, subtask1_random03.txt, subtask1_random04.txt, subtask1_random05.txt, subtask1_random06.txt, subtask1_random07.txt, subtask1_random08.txt, subtask1_special01.txt, subtask1_special02.txt, subtask1_special03.txt, subtask1_special04.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 52 ms 4156 KiB
subtask0_sample_02.txt AC 49 ms 4184 KiB
subtask1_line01.txt AC 53 ms 4184 KiB
subtask1_line02.txt AC 50 ms 4184 KiB
subtask1_line03.txt AC 52 ms 4180 KiB
subtask1_line04.txt AC 52 ms 4176 KiB
subtask1_line05.txt AC 54 ms 4172 KiB
subtask1_line06.txt AC 49 ms 4156 KiB
subtask1_random01.txt AC 48 ms 4176 KiB
subtask1_random02.txt AC 48 ms 4176 KiB
subtask1_random03.txt AC 50 ms 4184 KiB
subtask1_random04.txt AC 49 ms 4180 KiB
subtask1_random05.txt AC 47 ms 4180 KiB
subtask1_random06.txt AC 49 ms 4180 KiB
subtask1_random07.txt AC 52 ms 4176 KiB
subtask1_random08.txt AC 49 ms 4176 KiB
subtask1_special01.txt AC 52 ms 4176 KiB
subtask1_special02.txt AC 51 ms 4224 KiB
subtask1_special03.txt AC 50 ms 4180 KiB
subtask1_special04.txt AC 51 ms 4176 KiB