AtCoder Grand Contest 036

結果

tokuminiさんのAtCoder Grand Contest 036での成績:254位
パフォーマンス:2080相当
レーティング:1906→1925 (+19) :)
Highestを更新しました!

 B問題を自分としては素早く解けたがC問題に歯が立たなくて座っているだけの時間が長かった。

A問題

 一つを原点に置いて良いことに気づかず、長方形から3つの三角形を引くことを考えて時間がかかった。

f:id:tokumini:20190722150522j:plain

 いやこれだって左右反転してX軸方向にずらせば一つは原点になるんだが……。気づかないときは気づかない。

 立式したら引き算が出る影響でSの大きさでも場合分けしまくるひどいコードになってしまったし考察の方針が悪すぎた。直接公式が思い出せずとも外積で計算できるってことは知っているんだから一つは原点に置いて良いというのは当たり前に近いなぁ。

 提出

B問題

 サンプルが多めなので異常なひらめき系ではないのかなとかメタ読みを挟みつつサンプルを手で解いていたところ、同じ数字が出るところまでで消えるからその次へ辺を張って……

f:id:tokumini:20190722150749j:plain

という感じで上図が出て周期性がありそうだなと実装開始。考察を詰めきらずに実装を始める無謀さは人よりありそうだと思っていて、今回はそれが良い方へ作用したか。本番でのコードのわりにはそこまで見通し悪くないような気がするしWAも出さなかったのでなんとか。

 提出

C問題

 なんか図形的に格子点の一部を除外する感じかなぁと考えていたが、普通に必要十分条件を出して数え上げる問題だったのか。しかし解説PDFを読む限り、条件を出せてもそれを数え上げる方法をひねり出すのも難しそうだし、これは難しい。

 ほぼ解説通りのコードで通したけど、2で割った余りを出すつもりが1で割った余りを計算していてWAを出しまくりきつかった。サンプルにMが奇数の場合がないという罠。

 提出