beet's soil

競プロのことなど

stack overflow 回避

まだ手元実行で消耗してるの?

なんぞこれ

1e6頂点とかのグラフに対してDFSするとセグフォして死ぬことがあります

多くのコンテストサイトではスタックサイズが(実質)無限なので気にする必要はあんまりないんですが、FHC のような手元で実行して結果を提出する形式の時に困ります(話が逸れるんですがO2つけ忘れたり-D_GLIBCXX_DEBUGをつけっぱなしにしていてTLEしたりもします)

以下では環境ごとの対策を挙げます

Ubuntu

ICPCは基本これでOK ジャカルタ?知らないRegionですね…

ulimit -s unlimited

Mac

コンパイルオプションを足す

alias g++='g++ -O2 -Wall -Wextra -Wl,-stack_size,0x10000000'

WSL

コンパイルオプションを足す  2020/08/06追記 オプション足りてませんでした(ア

alias g++='g++ -O2 -Wall -Wextra -fsplit-stack -Wl,-stack,0x10000000'

参考:

github.com

github.com