入出力がネックになる場合
メインロジックの7倍以上重い
ナイーブ 876 ms #5941704
var TX = ReadLine().Split().Select(int.Parse).ToArray();
var T = TX[0];
var X = TX[1];いや、C/C++の速い提出は60 ms切ってるけど・・・ 10^5入出力だからそこが遅そう
AutoFlushを切る 327 ms #5941729
SetOut(new System.IO.StreamWriter(OpenStandardOutput()) { AutoFlush = false });
//...
Out.Flush();AutoFlush = trueの10^5出力はfalseより500 ms遅い。ほかの問題でもそう
入力はLINQとToArrayが遅そう
Select、ToArrayをやめる 229 ms #5941784
var TX = ReadLine().Split();
var X = int.Parse(TX[1]);
if (TX[0] == "1")Splitも配列生成してるが
Splitをやめる 185 ms #5941872
var TX = ReadLine();
var X = int.Parse(TX.Substring(2));
if (TX[0] == '1')Substringもstringの新しいインスタンスを生成してる。
AsSpanできねぇ
.NETの標準ライブラリ 、内部で例外の変数チェックとか多重のメソッド呼び出しとかいっぱいあって、自分で書いた方が速いのでは
自前IO 103 ms #8097556
public static class FastIO
{
...ストリームの管理とかパースとかを自分でやる
入出力の改善で 870 ms -> 100 ms
実質 80 ms だから C/C++ に追いついたか
自前出力は面倒なのでAutoFlush切るだけで十分