楽しいコンテストだった
来社
寝坊して9:24頃到着した(受付は9:00-9:50)。運良くコンセントのある席が残っていてよかった。
本戦問題コード部門
DISCO presents ディスカバリーチャンネル コードコンテスト2019 本戦 - AtCoder
A (00m00s-07m56s): 「300にしては難しくないか?」と思った。氷以外が必ず2マス以上連続で現れるのはわかっていたが、それをうまく実装の簡略化に結びつけられなかった。
B (07m56s-18m27s): idsigmaさんのツイートを以前見ていたおかげでその時の考察を再利用できた。結局大きい方から順にpushしていって転倒数を消費することを考えればよい。大きい方をpushするとオーバーしてしまう場合は小さい方をpushする。
高橋くん1からNを順に並べた数列を渋谷に置いておきました。渋谷ではハロウィン騒ぎがあり、軽トラック同様高橋くんの数列も倒されてしまいました。数列の転倒数はKになったということは分かっています。倒されてできた数列としてありえるものを1つ出力してください。
— ∑ (@sinsincoscos) October 28, 2018
1<=N<=10^5
0<=K<=N(N-1)/2
D (18m27s-33m45s): 実家。CとDを見てどちらに行くか迷ったが、yukicoderでhamkoしゃんが似た問題(No.510 二次漸化式 - yukicoder)を出していたので解法を秒で思いついたため、最初にDを解くことにした。これが通せて暫定3位になった時点で作戦勝ちだと思った。
C (33m45s-105m23s): 幾何。当然円の周囲に触れるところで反射させるのが一番効率的だし、ある地点まで光を飛ばせるならそこより近いところにも飛ばせるので、反射で届く(柱にブロックされない)一番遠いところを計算するだけ。ただ、幾何ライブラリを整備しておらずその場で書いたため、単純なバグに長時間苦しんだ。これは負けですね…
E (105m23s-120m00s): 構築。15分しかないのでダメみたいですね…。終了です。
本戦終了時点で凍結含め最悪18位だったので、最終的に10位になれてよかった。Cに時間をかけたせいでEみたいな面白いけど時間がかかる問題に手を出せなかったのは悲しい。
本戦問題装置実装部門
無理でした おわり
コンテスト後
いつもの勢の方々とご飯に行った。kyuriさんと一緒にyosupoさんにEの解を教えてもらったりした
まとめ
反省して幾何ライブラリを整備します (少なくとも、コピペできるようなオンラインの幾何ライブラリを見繕っておきます)