No.462 6日知らずのコンピュータ

Quiz

https://yukicoder.me/problems/no/462

Submit

https://yukicoder.me/submissions/343542

解法

公式解説の通り

ハマった所1

  • 最終状態である1が全部立った値を配列に追加する際、シフトを使うがintを使ってしまいオーバーフロー
  • 1<<60 ダメ
  • 1LL<<60 OK

ハマった所2

  • 配列サイズの指定 resize の指定間違い
  • 普段、配列サイズはNが多い
  • 今回もA.resize(N)と書き、入力を受け取るforの回数もNとした
  • 「おっと今回はKだった」とforの回数をKに直す
  • Aのサイズを修正し忘れる・・・
  • ↓くいちがっている状態
vector<ll> A(N);
FOR(i, 0, K){
    ll a;
    cin >> a;
    A[i] = a;
}
  • 添字エラーになってくれればすぐ気づけたのだが、答えがなぜか合わないバグとなって時間が溶けた

感想

  • 解き方や思考はシンプル
  • しかしハマったことですごく時間がかかった

学び

  • 修正し忘れに注意