CODINGAME SPRING CHALLENGE 2020で初Silverを獲りました。

"CodinGame Spring Challenge 2020"に参加しました。 CodinGameにはリーグという階級分けの制度があり、各リーグのBOSSを基準にWood2, Wood1, Bronze, Silver, Gold, Legendと登っていきます。今回のコンテストで初めてSilver(の上位)まで到達することができ…

フォルシアと競技プログラミングと私

フォルシアと私 私がフォルシアで働き始めたのが2016年なので、もうすぐ丸4年が経ちます。 キャッチコピーは「見つからなければ、始まらない」から「見つけることから、始めよう。」に変わり、ビジネスも「検索」の受託からより大きな「意思決定のサポート」…

作問時のCI環境をTravis CIからGitHub Actionsに移行する方法

競技プログラミングのコンテストを作る際に、作問補助ツールであるRimeを使います。これまではPush時にTravis CIでテストが回るようにしていたのですが、GitHub Actionsに移行してみました。設定を共有します。 Travis CIの例 かつてはTravis CIを使っていま…

2019年に買った689明細から選ぶ買ってよかったものベスト31

どうやら2019年にAmazonで689明細の注文をしていたようで、買ったものを振り返るついでに買ってよかったものを紹介していきます。 本部門 本部門と本以外部門しかないのですが、まずは本部門から紹介していきます。 技術書部門 失敗から学ぶRDBの正しい歩き…

RustのCLIツールにバージョン情報を出力するオプションを追加する方法

Rust Advent Calendar 2019の24日目の記事です。 バイナリファイルを配布して運用してもらうとなると、version情報の出力は必須オプションですね。 この記事ではCargo.tomlのversionを出力する方法を、RustでCLIツールを開発する際の標準的なcrateであるClap…

4年目LTというイベントを企画している話

同期のエンジニアって何をやっているか知っていますか?規模やカルチャーの違う会社のことは分からないですよね。 新卒4年目のエンジニアでキャリアやこれまでの仕事について話すLT会を企画しています。 forcia.connpass.com 12/17(火)ですが、もう少し参加…

ABC147 E Balanced Pathでbitset高速化を完全に理解する

本番で通せなかったABC147のE問題『Balanced Path』について、反省していきたいと思います。 問題概要 H*Wのグリッドの各マスに数が2つ書かれている。グリッド上を(0,0)->(H,W)にy+1orx+1で移動するとき、経路上の各マスについて、いずれかを選び、「その合…