Akihito Ikeda

2019年07月27日

posts/2019-07-27diary

今週は人とご飯食べたり飲みに行ってお話する機会が多くて楽しかった。

今日は鹿児島のもくもく会に参加。冷房で冷えすぎたのか頭が痛くなった。前もこれが原因じゃないかってことがあったし本格的に対策しないとやばい。羽織るものを常備しておこう…。
そのあとはラーメン食べて、鹿児島ユナイテッドFCの試合を見にいった。初めて見にいったけど楽しかったなあ。なんか遠くに花火も見えてたし。試合は負けちゃったけど、めちゃくちゃ体を動かしたくなった。来週は超重要な予定があるから行けないけど、近いうちにまた行きたい。選手のことを知ればもっと楽しめそう。にしても最後おしかったなああ。

帰ってもろもろやって、寝る前にABC135やるかーと思ってやり始めた。眠くてA,Bしかできなかったけどせっかくだし載せとく。眠かったりだるかったりする時に、思考停止でやれるのがまだBまでって感じで、Cはちょっと考えないといけないしDはめちゃ考えないといけないから、今の状況だとなかなかD以降に手をつけられない現状でなんとかしたい。朝早めに起きてやるのが一番ぽいけども…。

A - Harmony

絶対値が等しいってことは、数直線を考えた時にちょうど中間にあるわけだから、中間の点があるかどうか判定して、あればそれを出力って感じ。
Aにしてはちょいむずい気がする🤔

a, b = gets.strip.split.map(&:to_i)

if (b - a).abs % 2 == 0
    puts (b - a).abs / 2 + [a, b].min
else
    puts "IMPOSSIBLE"
end

B - 0 or 1 Swap

1回のswapで2つの数字の位置が変わるわけだから、昇順になっていた場合の数字と異なるものが2つならOKてこと。
それと1回もswapしなくてもいいと書いてあるので最初から昇順になっていてもOK。
下の実装では、昇順になっていた場合「値 = インデックス+1」になっているはずだから、そうなっていないものをカウントしてる。
そうなっていないものが2つ以下なら(1つはありえないけど)、1回以下のswapで昇順にできる。

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

puts ps.select.with_index{|v, i| v != i + 1}.count <= 2 ? "YES" : "NO"

明日は不動産をはしごして退去と契約をやってくる。

© Akihito Ikeda - Last update 04.03.2024 00:58.