Skip to content

Instantly share code, notes, and snippets.

@whatalnk
Created July 16, 2017 01:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save whatalnk/99b2f9b8299decadd034105c82b66681 to your computer and use it in GitHub Desktop.
Save whatalnk/99b2f9b8299decadd034105c82b66681 to your computer and use it in GitHub Desktop.
AtCoder ABC #067 / ARC #078
a, b = gets.chomp.split(" ").map(&:to_i)
if a % 3 == 0 || b % 3 == 0 || (a + b) % 3 == 0 then
puts "Possible"
else
puts "Impossible"
end
n, k = gets.chomp.split(" ").map(&:to_i)
l = gets.chomp.split(" ").map(&:to_i).sort.reverse
puts l[0...k].inject(:+)
n = gets.chomp.to_i
a = gets.chomp.split(" ").map(&:to_i)
b = [a[0]]
(1..(n - 1)).each do |i|
b << b[i-1] + a[i]
end
a_sum = b[n-1]
ans = (b.shift * 2 - a_sum).abs
b.pop
b.each do |x|
ans = [ans, (2 * x - a_sum).abs].min
end
puts ans
@n = gets.chomp.to_i
@nodes = Array.new(@n+1){Array.new()}
(@n - 1).times do
a, b = gets.chomp.split(" ").map(&:to_i)
@nodes[a] << b
@nodes[b] << a
end
def dfs(start)
que = [start]
visited = Array.new(@n+1, false)
dist = Array.new(@n+1, 0)
while !que.empty?
node = que.shift
visited[node] = true
@nodes[node].each do |i|
if visited[i] then
next
else
que << i
dist[i] = dist[node] + 1
end
end
end
return dist
end
dist1 = dfs(1)
dist2 = dfs(@n)
fennec = 0
snuke = 0
(1..@n).each do |i|
if dist1[i] <= dist2[i] then
fennec += 1
else
snuke += 1
end
end
if fennec > snuke then
puts "Fennec"
else
puts "Snuke"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment