本記事は管理人が競技プログラミングを始めたため,その精進日記としてログを取ったものです。アウトプットして積極的にモチベーションを上げていく作戦です。まずはc++を習得するところから始めます。その他の記事は以下をご覧ください。
【競プロ精進日記】目次まとめ
ABC
Atcoder Beginner Contestの過去問を解いています。最低限のコメントと一言が添えられています。
...
スポンサーリンク
その他の機能
C++入門 AtCoder Programming Guide for beginners (APG4b)を1からさらっていく内容です。
今回の例題は全てのテストケースに対してACすることができませんでした。整数演算に関してはACできましたが,ベクトル演算がぐちゃぐちゃになってしまい放棄です。いきなりレベルが上がってびっくりしています。痛感したことは,最初にコードの雛形を作っておかなければ,様々な例外処理に追われて壊滅するということです。
今回であれば,例えば入力を項のカタマリごとに読み取る関数を設計すると見通しが良くなります。その関数では,項が変数で与えられるのか直接与えられるのかを判断する条件分岐が最初に必要になります。また,ベクトル演算の方は,最終的に出力するベクトルの長さが道ですので,初期値としては最初の項を入れてあげる必要があります。
私自身引っかかったポイントとしては,「項が変数で与えられるのか直接与えられるのかを判断すること」「途中で出力しないで演算結果は保持しておいて最後に出力すること」です。改めてですが,関数を利用して積極的にモジュール化することで,エラーが出た時のデバッグ対応も非常にやりやすくなります。教訓です。