プログラムをコードの途中で終わらせる
作成日:2017.11.01
カテゴリー:競プロに関するあれこれ
はじめに
競プロにおいて、途中でプログラムを終了させることがある。
例えば、Yes/No判定問題でNoの条件を満たしたらその旨を出力して終わるというものだ。
当然if文を使って書くのだが、一刻を争う競プロにおいては中括弧を省略してしまいたくなる。
そこで、そのような方法を紹介する。
前提
コードはすべてC++である。
本題
出力だけの場合
工夫なしだと
if(hoge){
cout << "NO" << endl;
return 0;
}
となるが、コンマ演算子を用いると
if(hoge) return cout << "NO" << endl , 0;
と書ける。理論的にはいくつ処理があっても可能だが、2つ以上の処理をまとめるのはさすがにやりすぎな気がする。
複数の位置で同じ処理が行われる場合
処理をhalt関数にまとめて
if(hoge) return halt();
とする。この時、halt関数は$0$を返すようにしておく。
AtCoderで橙コーダになる方法(の一例) (新しい記事)>