Denoで提出すべきタイミング@AtCoder
#競技プログラミング #AtCoder
TypeScriptでAtCoderに挑戦する上では基本的にはBunを使っておけばいいのですが、一部「Bunだと苦手、もしくは実行できない」ようなプログラムが存在します。そういうときはDenoに切り替えましょう。
以下に、Denoに切り替えるべき状況を列挙します。
深い再帰関数で、かつその関数がProper Tail Callsの対象にならない場合
Bunでは、Proper Tail Callsにならない再帰関数はMaximum call stack size exceededになります
スタックサイズ引き上げが行われていないので
スタックサイズ引き上げがジャッジ環境の設定側で行われているDeno(かNode.js)を使いましょう
もしくは、Proper Tail Callsになるように書き換えましょう
bigintを多用する場合
Bunは基本的に速いですが、bigintの処理は苦手っぽいです
Denoのほうが少し速いみたいなので、Denoに切り替えてみてもいいと思います
とはいえbigint自体重いので、numberで済ませられないかは検討してもいいかもしれません
例: mod998244353で加算・減算@TypeScript (加減だけならnumberで済ませられます)