0.はじめに
最近は、デイリートレーニングにも手を出してますが
それほどレベルアップした感はありません・・・。
Aから躓きつつ、なんとかCまではいけましたが
Dはワンチャンイテレータごり押しで行けるかと思いましたが
そんなことは無くTLEに阻まれ、その後解説読んでも今一でした。
Aでの失敗もひびき、レートは-2となりました。
1.A - 2UP3DOWN
問題名で気づくべきでしたが、上下移動共に3段までと
誤認して回答してしまいWAを出してしまいました・・・。
閾値テストとかするべきですね・・・。
https://atcoder.jp/contests/abc326/submissions/47003579
2.B - 326-like Numbers
Nを数値でインプットしてfor文の起点にしつつ
文字に変換して1・2・3桁目を取り出し
また数値に戻して計算するという
忙しい感じで実装してACでした。
https://atcoder.jp/contests/abc326/submissions/47000301
3.C - Peak
いもす法で行けるかなと試してみましたが、10**9の
リストがメモリオーバーで作れず 断念。
リストを頭から読んでいくオーソドックス(?)な方法でチェレンジ。
【実装】
1.N・Mを読み込む
2.Mを-0.5する(以下の実装だと、こうしないとずれる)
3.リストAを読み込み昇順でソート
4.以下定義
-p(リストを移動した時点でのプレゼント数)を0に
-pre(リストの前の数字の時にプレゼントゲット範囲だったアドレス)を-1に
-now(現在の位置)を0に
-ans(pの最大値)を0に
5.リストAを先頭から見ていく(インデックスi)。
5-1.nowをA[i]の値に
5-2.pに1加算
5-3.preがー1の時(最初の数字の時)
5-3-1.preにiをセット
5-4.preがー1ではない時
5-4-1.A[pre]+Mがnow以上になるまで以下繰り返し
(nowの位置からプレゼント範囲ではない間)
5-4-1-1.pから1減算
5-4-1-2.preに1加算
5-5.ansにansとp大きい方をセット
6.ansを出力
https://atcoder.jp/contests/abc326/submissions/47021139
4.D - ABC Puzzle
イテレータを使って、N*Nの組み合わせを全種類作るようにしたところ
N=4までは何とかなりそうでしたが、N=5は無理でした。
1つずつ条件を設定していく方法では、N=3までで飽きてしまいました。
解説を理解して実装できるようにしないといけなそうです。
折を見てリベンジ予定
以上