SRM265E に挑戦.前回急降下したレーティングは 1255 です.まだ 1200 以上なのでかろうじて Division1 には残っています.前回はポイント ゼロだったので,今回こそは一問でいいから System Test に通ることを目標に.今回もゼロだとおそらく 1200 以下に落ちます.

ScheduleStrength (code)

250 点問題. リーグ戦において

このような状況のとき,より厳しいスケジュール・強い対戦相手と戦ってきたチームを優先させましょう.このスケジュールの厳しさを計算せよという問題です.これもやはりただ実装するだけという問題なのですが,最初,意味を勘違いしていたこともあり,大幅に時間がとられてしまいました. しかし,44 分は時間かけすぎ.

Recipe

500 点問題. 料理の正しいレシピ (例 - 塩:大さじ 4,砂糖:小さじ 18, 醤油: カップ 2 杯) と, 実際にボールに入れて混ぜてしまった量(例 - 塩:大さじ 4,砂糖:小さじ 19, 醤油: カップ 3 杯)が与えられます.この時,正しいレシピの割合にするには,ボールにあとどれだけ各調味料をいれればよいでしょうか?という問題です.必要以上にいれてはいけません. この例の場合は,あと (塩:大さじ 4,砂糖:小さじ 17, 醤油: カップ 1 杯) 追加はいれすぎです.正解は(塩:大さじ 2,砂糖:小さじ 8, 醤油: カップ 0 杯) になります.

うーん,時間切れでした.最大公約数を使用すれば,エレガントにとけますが,それ以外の方法では制限時間の 2 秒以内には終わらない可能性があります.実際,SRM 後にコードを完成させたのですが,最悪の入力ケースでは 2 秒以内に終了しませんでした.

PokerDeck

1000 点問題.SRM 中は Open できませんでした.この問題に正解したのは,Division1 参加者 333 人中 1 人だけです.. ( Problem Detail )

結果

今度こそ,250 点問題は Pass すると思ったのけど...System Test の結果です. ( Room Statistics )

Room Statistics

あれー.また System Test に落ちてる.ここでした..

t.p = (double) w / (double) l;

勝率の計算を win / (win + lose) でなく,win / lose で行っています.またもや,あきれるくらいの単純なミス.これで Example にすべて通ってしまったのが,運が悪かった..今回も,Challenge Time では誰もここにきずかなかったのか,誰もチャレンジしてきませんでした.

他の人のソースを見てみると,あらかじめ,勝率を

(double)w / (double) total

と (勝数) / (試合数) を計算しておいて,double になった勝率どおしを比較するのではなく,

my.win * your.total - your.win * my.total

として,比較しているのが見受けられます.全て整数どおしの計算になるので,double にまつわる問題を避けることができます.なるほど.

今日の教訓

レートは 1255 -> 1097 とやはり急降下.Division2 行きが決定しました...名前も緑に. 2 軍におちる選手の心境がすこしはわかったような.