2019年07月22日

Jul 23, 2019 01:02 · 355 words · 1 minute read

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識 を買ったので少しずつ読む。少しずつでもやってくしかないのがこの世の真理。

ABC134をやった。Dは軽く問題文読んでイミフだったからスルーしてA, B, Cだけ……。

A - Dodecagon

半径aの円に内接する正十二角形の面積は3a2であることが知られています。

だそうなのでそのままやればおk。

r = gets.to_i

puts 3 * r ** 2

B - Golden Apple

ひとりで(2 * d + 1)本みれるので、切り上げればおk。

n, d = gets.strip.split.map(&:to_i)

puts (n.to_f / (2 * d + 1)).ceil

C - Exception Handling

1番大きい値と、2番目に大きい値がわかればおk。

n = gets.to_i
an = n.times.map { gets.to_i }

sorted = an.sort.reverse
max = sorted[0]
next_max = sorted[1]

an.each.map { |a| puts a == max ? next_max : max }

感想

A, B, Cは本番で早解きするならまだしも、さすがに後からやる意味はあんまなかったかも。
D以上をやってかないと。頭の体操くらいにはなるかもだけど。