gcc8の-O3でDPの挙動が怪しくなる模様。
yukicoder No324 落ちてた閉路グラフのはまやんはまやんさんのソースを使います(注:https://twitter.com/yukicoder/status/1015940088423841793 に書かれているものですが、取り急ぎです。後ほど自作のソースに置き換える予定。)
-O3に未定義動作を送るとコードが潰されるのは有名な話ですが、このソースのif(j)dp[j-1]
は上流でjの範囲を指定している(よってj!=0ならばj>0がいえる)にもかかわらず未定義動作になるようであるのが原因。そこでif(j>0)
に置き換えると直ります。
しかし、if(j!=0)
としている答案って結構多そうなので、影響大きそうです。