はじめに
カテゴリー競プロ初中級者100問では、Qiita
にて@e869120
さんがレッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】としてまとめられている100問をPython
で解いています。
全問題の一覧はこちらです
問題
https://atcoder.jp/contests/ddcc2020-qual/tasks/ddcc2020_qual_d
方針
実際にて計算をしてみると、どのような順で予選ラウンドを開催しても開催の回数が変わらないと分かります。
ただし、愚直に先頭からシミュレーションを行うと処理が間に合わないため、計算量を削減する方法を考えます。
予選を行うことで、桁数、全体の和がどのように変化するかに着目します。
- ある予選ラウンドの和が
10
以上の場合
桁数は変わらない。全体の和は9
減る。 - そうでない場合
桁数が1
減る。全体の和は変わらない。
これらの情報を元に、全体の和を一桁にするために何度、予選ラウンドを開催すれば良いかを計算できます。
コード
解法がわかりさえすれば、実装はとてもシンプルです。
1 | M = int(input()) |
記事情報
- 投稿日:2020年6月5日
- 最終更新日:2020年6月5日