みなさん、こんにちは。私は非常に多くの情報を提供しなければならないコーディングコンテストの問題を解決しています。
問題で述べたように-入力ファイルのサイズはほぼ8MBに達する可能性があるため、高速I/O方式を使用していることを確認してください。
入力はテストケースの数として与えられます。次に、正方行列の次元n。次に、マトリックス全体を次のように
2
3
2 6 4
4 8 9
7 9 4
2
8 4
15 4
ネット上のどこかからコードを入手しましたが、これでもTime Limit Exceededというメッセージが表示されるため、何の役にも立たないと思います。次のコードが高速入力を行うかどうかを教えてください
#define BUF 406 // block size on my disk is 4KBs
char ibuf[BUF];
int ipt = BUF;
int read_uint() {
while (ipt < BUF && ibuf[ipt] < '0') ipt++;
if (ipt == BUF)
{
fread(ibuf, 1, BUF, stdin);
ipt = 0;
while (ipt < BUF && ibuf[ipt] < '0') ipt++;
}
int n = 0;
while (ipt < BUF && ibuf[ipt] >= '0') n = (n*10)+(ibuf[ipt++]-'0');
if (ipt == BUF)
{
fread(ibuf, 1, BUF, stdin);
ipt = 0;
while (ipt < BUF && ibuf[ipt] >= '0') n = (n*10)+(ibuf[ipt++]-'0');
}
return n;
}
そして、この場合、intの入力を読み取る最速の方法を教えてください
事前にどうもありがとうございました