ABC 073 C問題 Write and Erase

問題

C - Write and Erase

joisinoお姉ちゃんってなんでjoisinoなんでしょ?

考察の流れ

joisinoお姉ちゃんが言った数について,言った回数が奇数回なら最終的に紙に書かれているし,偶数回なら紙に書かれていないことになる.

シンプルなのは各数(1 \leq A_i \leq 109)が最終的に書かれているかの情報を持たせた配列を使って,その個数を求める方法だけど,109回ループを回すと間に合わない.

そこで,受け取った数列をソートして(O(N log N)),各数の個数を前から数えていき(O(N)),奇数の場合は結果としてカウントすることにする.

これなら計算量的に間に合う.

コード

Submission #2760411 - AtCoder Beginner Contest 073

1発AC 所要時間20minくらい

反省

  • ABC 071 C問題 Make a Rectangle - おふとん王国のコードと同じで,各数の個数を前から数えていくコードがシンプルじゃない感じになっています.解説に書いてある実装を復習する.
  • シンプル解で,配列ではなくsetとかに情報を持たせれば,計算量的に間に合うということもわかってはいましたが,setをそんなに使ったことがなかったのでやめました.蟻本を読み返す.