A | B | C | D | E | F |
---|---|---|---|---|---|
水 | 青 | 橙 | 赤 | 赤 | 赤 |
1348 | 1861 | 2578 | 2937 | 3101 | 4612 |
※コンテスト終了時順位、実行速度は同言語内のみ比較
2時間かけて1問も解けず
とはいえそれを悔しいなどと言えるレベルでもなし
水diffのA問題(300点)だけなんとか自力AC
(周知の事だが、配点は難易度の基準ではない)
計算量を過大に見積もって無理な高速化に挑んだ挙句、手に負えなくなって撤退
単純な実装に立ち戻って速度を評価したところ、全然間に合ってしまい脱力するなど
ただこの単純な実装というのが結構なショートコードだったようで、その時点での最短1位を獲得した
そしてこれを短縮した改訂版が、コードゴルフ上級者の改変元(たたき台)として採用されたようだ
十分に無駄のない品質と評価されたことはとても嬉しい
だがそれ以上に、自分のコードを元を修正してくれるので、ゴルフの添削となっていて大変ありがたい
参考になる書き方があったり、詰めが甘い部分が見えたりして実に勉強になる
-i-1 == ~i
つい忘れがちだけど、積極的に使っていきたい
標準入力っぽいの($<, ARGF)はEnumerable
grep, map, sumなどを使って行単位処理できる
配列のi番目以降が欲しいときの書き方
1. Ary[i...Ary.size]
2. Ary[i..-1]
3. Ary[i,MAX]
4. Ary[i..]
Rangeの終端を省略した4番は目から鱗だった
(0..).each みたいなのが書ける時点で気付くべきだったかもしれない
A | B | C | D | E | F |
---|---|---|---|---|---|
灰 | 灰 | 緑 | 茶 | 緑 | 水 |
0000 | 0016 | 0877 | 0411 | 1158 | 1575 |
※コンテスト終了時順位、実行速度は同言語内のみ比較
爆死回
わかっていたことだが、B,Cあたりで引っかかって、かつD,Eでリカバリできないと大爆死する
今回はCで頭を抱えていた折に仕事の連絡が入り10分程ロスした
だが時間以上に集中力と熱意を削がれてしまい、Cを飛ばすか否かで判断を誤ってそのまま終了
結局Cは11分超過でAC
電話で水を差されなければあるいは間に合ったやも……
難易度評価の通り、後続のDの方が簡単で、こちらは30分弱
比較するとお世辞にも褒められた速さではないが、まぁ一応解けはする
さっさとCに見切りをつけてDをやれば……4,50分くらいで3完、そんでPerf700くらいだったかもね
E問題、結構考えたが疲れた頭ではどうにもならず
「二分探」、「Pairs」のキーワードを拾ってから再挑戦したら、さっくり解けた
これは制約が10^9なところでピンと来なくちゃね
解いてみれば割と単純どころか、回答が僅か2行なんですけど……
現時点でも2nd shortestってどゆこと?
そんな風に解けるくらいなら、もう少しスコア伸びたってよさそうなものだがなー
それと今回、F問題の難易度がすごく低いみたいだ
F問初攻略目指してやってみるかな?