n度あることはn+1度ある

憶測が多いブログなので鵜呑みにしないこと

ABCで気をつけること(C/C++)

主に自分用のメモですが、コンテスト初心者がC/C++でやっていくにあたって注意していきたいことをメモ書きしていきます。(随時追加予定)

intは使わない

計算途中でintの範囲を超える計算がC問以上からでてきます。 WAの理由がintの範囲を越えているから、ということを気づかずに悩んでいるのは時間が勿体無いです。一々入力の範囲を見てintを越えそうだから~と型を決定するのではなく、最初からlongを使っておくといいと思います。 ちなみにautoだと、初期化や最初の入力段階で型判断がされるのか、通らないことがありますので型を指定する必要があります。

bits/stdc++.hをインクルードする

stringを使うからstringをインクルードする、のように毎回インクルードファイルを書いているのは時間の無駄ですし、使いたいコンテナや関数はすぐ使えるべきです。
bits/stdc++.hをインクルードしておけば大抵のものは使用できるので、文頭には#include<bits/stdc++.h>とだけ書いておくといいと思います。

オーバーフローに気をつける

a*b/cのように乗除が混在する計算の場合、除算を優先したほうが良い場合が多いです。解はX未満を保証する、と書いてある場合計算過程ではXを超える可能性があります。
1018未満を保証と書いてある場合、longunsigned longでも計算途中にオーバーフローしないとは言い切れないため、なるべくオーバーフローしないような計算順序を普段から心がけておくと良いと思います。

サンプルは全て試す

C/C++に限ったことではありませんが、A問や簡単なB問であればロクにサンプルを入力せずsubmitしたくなると思いますが、単純なタイプミスなどでWAをもらい、ペナルティを喰らうのは勿体無いです。
余程の自信が無い限り、公開されているサンプルは全て試したほうが良いと思います。