SRM 361

なんか目覚めがいいなと思ったら、SRM の日でした。たまたま Google Calendar 開いたのが良かった。ちゃんと一日のスケジュール確認する癖をつけよう。

250

ぱっと見で簡単で、適当にぺこぺこ。条件をちゃんと考えながら、ただ微妙な adhoc 感がなぁ・・・。問題文も短いのだから、こういう問題で 240 以上コンスタントに稼げるようになりたい。

500

境界でミスったー! 最近、500 が通せてない。悲しい。ちなみに解法だが、ごねごね考えた結果、99...900...0 x N の和で表さないといけないことに気づく。具体的には A0000 - 0000A = 9999 x A、0A000 - 000A0 = 990 x A ですよね。桁数を固定(左では 5 桁)すると、1, 10, 100 .. 桁の順に決定できることがわかる。わかるので、答えが 1, 2, ... 桁と仮定して、解答があるか調べる。最大で入力の倍の桁くらいだろうと、かなり適当にあたりをつけて探索。これはちゃんと示してないんだけど、最後 90..0 x A になるので、そこまで酷い直感ではないと思う。
結局何を間違えたかというと、1 桁決定するたびに、再帰式で 2 桁ずつ減らせるのだが、最後 1 桁だけ残るときの処理を書き忘れて、解答が必ず偶数桁になってしまっている! 最初気付いていた形跡がソースに残っているのに、サンプル通して安心しちゃってる辺りが何ともいえない。

1000

変数が 3 つの値のどれかになるときに、各変数間の不等式がいくつか与えられて、そこから大小関係を推定する。時間もなかったんですが、この 500 にして、この 1000 ありという感じだ。

Challenge

500 を適当に解いている人が多すぎで、10 行くらいのソースで、ぽかーんとしている 10 秒くらいの間にほとんどの人が challenge succeeded。まぁ、ボクも解けてないから人のこといえませんが。結局 no challenge で FA。ちなみに、room 内で 500 以上解けた人がいない。challenge を 4 回くらいやった人が 1 位でした。

結果

500 がなぁ・・・。こうなると、easy 'easy' を速く解いた順の順位になってしまうのは健全じゃない。そうはいっても、id:nyaasan のように撃墜しまくって上位に食い込めないとダメだ。