れとろのメモ置場

とあるSEのメモ置場

AtCoder Beginner Contest 272

AtCoder Beginner Contest 272に参加しました。

結果

A,B,Cの3問正解でした。 D問題は合ってそうだけどどっかバグってたっぽい。テストケースはACだったけど提出するとWAで、だめなパターンを見つけられなかった…

A - Integer Sum

問題文の通り処理する。

入力される値の合計を計算して出力する。 標準入力で数値を受け取れるなら特に困らない問題。

B - Everyone is Friends

少しややこしくて簡単な解き方がちょっと思いつかなかった。

入力を受け取り人xがk回目の舞踏会に参加したかどうかをフラグ化してから、 xが参加した舞踏会の参加者をsetに追加していき(x自身は除く)、 setのサイズがN-1になっているかどうかで判定を行った。

C - Max Even

2数の和の内、偶数となるものの最大値を求める問題。

和が偶数になるのは偶数+偶数か奇数+奇数の場合なので、入力される数値を偶数のグループと奇数のグループに分けてからそれぞれをソートし、1番大きいものと2番めに大きいものを足す。 答えの候補が2つできるので大きい方を出力する。

D - Root M Leaper

マス目上を指定された距離ちょうどで移動した場合に書くマスは何回目の移動でたどり着くかを全マス分答える問題。

多分移動可能なマスを探す部分でバグっていてACできなかった。

基本的な方針としては幅優先探索で移動可能なマスを見ていった。 また、移動可能なマスは、x座標を固定してx座標がXのときのy座標が何になるのかを算出してyがN \times Nのマス目の中に収まりかつ整数値になるかどうかで移動可能かどうかを判断した。