0.はじめに
A問題から難易度が高く、Cでくじけそうになりつつも
なんとかジャッジまで持って行ったところなかなか終わらない・・。
TLEするかと思っていたので、やっぱりかーと思いつつ10分以上たってしまい
ツイッター等みても同じ現象の人がちらほら。
試験時間20分延長もちょっとC問題の試行が出来ず終了しました。
ひさびさにレーティングもつかず、消化不良な感じでした。
1.A - First Player
Aにしては、難しいなと思いつつ実装。
【実装内容】
・人名を読み込んで保存しつつ、一番若い人の位置を記憶
・一番若い人から順番に出力、リストの最後まで行ったら
先頭から残りの人を出力
https://atcoder.jp/contests/abc304/submissions/41941184
2.B - Subscribers
こういうのはIF文連ねるのが結局早いんだよな!と取り掛かり始めましたが
書いているとループさせた方がよいな・・・と気づき素直にそれらしく実装
【実装内容】
・iを3~10の範囲で以下繰り返し
・Nが10のi乗-1以下の時以下の処理、そうでない場合は次のループ
・Nから、Nを10のi-3乗で割った余りを引く
・Nを出力してプログラムを終了
https://atcoder.jp/contests/abc304/submissions/41947639
3.C - Virus
コンテスト中は、TLE&提出がうまく働かず断念。
翌日解説を見ながら実装するもTLEが1つ消えず悩んでましたが
コンテストで提出した実装で、if文のインデントがずれているのに気づき
そこを治したら普通にACもらえました。
【考え方】
感染した人1(レベル1)をもとに、人2以降の人間が感染していないかをチェック
→距離がD以下の場合感染レベル2という情報をリストに保持
次は、感染レベル2の人一人ずつと、感染していない人の距離をチェック
→距離がD以下の場合感染レベル3という情報をリストに保持
以降繰り返し。
チェックレベル内で一人も感染者が出なければループを終了
いったん感染と判断されればチェックが不要となるので、チェック回数は
必要最低限で済み、ACとなりました。
https://atcoder.jp/contests/abc304/submissions/41985627
以上