Codeforces Beta Round #30
Codeforces format というものが何だかよく分かってないので、ルールを一通り眺めてから参戦。
Problem A: Accounting
- 書くだけ・・・だけど、何か罠がありそうだ。
- とりあえず X を全探索してやればいいよね。
- 指数だし、-10 .. 10 ぐらいまで調べれば十分かな?
- ...いやいや、n = 1 のとき X = 1,000 になりうるわけで。
- -1000 .. 1000 まで調べる・・・と、今度はオーバーフローの予感。
- 指数だし、-10 .. 10 ぐらいまで調べれば十分かな?
- n = 1 ならば直接計算して、それ以外は -100 .. 100 で全探索でいいか。
- 書けた。念入りにテストとかしてみる。
- submit. Pretest通った。
Problem B: Codeforces World Finals
- これも書くだけかな。いろいろ面倒くさそうだけど。
- 眠くなってきたので現実逃避とかしてみたりする。
- 年月日の解釈は面倒なので6通りハードコードしてしまって。
- ありえない日付なら弾いて、あとは比較。
- 思ったより実装が面倒でなかった。
- submit. Pretest failed. あれれ?
- ...
- ...
- ハードコード間違ってたばか。ちゃんと確認したはずなんだけどなぁ。
- Pretest passed.
Problem C: Shooting Gallery
- これも典型的DPでよさそう。
- dp[i][j] := 的 i が消失した直後で 的 j に照準が合っている状態での最大期待値 な感じで。
- ...なんだか実装に手間取る。DP力落ちてるなぁ・・・。
- submit. Pretest failed.
- ・・・あ!入力が時刻の昇順に来るとかどこにも書いてない!罠だ!
- 今更構造体作るのも面倒なので自分でバブルソートを書いてみる。どうせ O(n2) だ。
- submit. failed.
- ...えーと、照準を合わせるときの許容時間は t[i] - t[i-1] じゃなくて t[i] - t[j] だよね。
- submit. failed.
- ...えーと、的 i に照準を合わせた状態で開始するケースを考えてなかったね。
- submit. failed.
- ...えーと、最終的な答えは *max_element(dp[n], dp[n]+n) じゃなくて *max_element(dp[n], dp[n]+n+1) だよね。
- いくらなんでもDPミスりすぎだろ!頭悪すぎる...。
- submit. failed.
- え、まだバグあるの?もうやだ...。
- ...
- 入力読み込む前にソートしてた。これはひどい。
- Pretest passed.
- どうにか間に合った・・・。
Result
- oooxx +0 1772
- 1419 -> 1615
- C の 5WA が無け-ればもう少しマシなスコアだったに違いない。
- まぁ、解ける問題を落とさなかったのでこれで十分かな。