Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

AtCoder Beginner Contest 154

からの

初参加からRated ContestのStreakを切らしていないので、気合だけで参加して繋げました。結果は4完1WAからのー?(後述)

各問題

A - Remaining Balls

UがSと同じなら、捨てられるのはSなのでAを1減らし、Tと同じならBを1減らして出力すればよいですね。

私は参加状況があれなせいで慌ててしまい、後者でcout << a << " " << b << endl;という実装(何も減らしていない・・・)をしてしまい、1WAをもらってしまいました。

B - I miss you...

Sの長さを確認して、その長さの分'x'を出力すればいいです。

え、これ、Aより簡単なのでは・・・。一応想定解(問題文をそのまま処理するパターン)がforを使用するからABCのB、ということなんでしょうけど。

ちなみに私は参加状況があれなせいで慌ててしまい?、for (char c : s) cout << 'x';というよくわからない実装をしました。

C - Distinct or Not

Aをすべてsetにぶち込んで、size == Nなら重複はないので"YES"、そうでないならどこかに重複があるので"NO"です。

最初「どの2つの要素も互いに」を「どの2つも互いに素」と誤読して悩んだのはここだけの話です。

D - Dice in Line

累積和を取って、和が最大になる区間を求めて、その区間の期待値を出せばよいです。

私は累積和をPの値でとって、区間を求めてから期待値を出したのですが、累積和を期待値で取ってしまうほうが手っ取り早いですね。

なお、サイコロ(1からPまで)の出目の期待値は(P+1)/2でございます。

さて、ここまで

f:id:mdstoy:20200209235151p:plain

16分だったのですが・・・

E - Almost Everywhere Zero

Eの考察中にノートPCの電源が限界を迎えてしまいました。on_

中古PCでバッテリーが大事に使っても2時間持つかどうかな上に、トンネルで何度も通信が途切れるため、かなり負荷がかかってしまったのではないかと思っています。知らんけど。

まとめ

米津玄師のライブ、最高でした。

f:id:mdstoy:20200210000104p:plain