CodeChefの3月のチャレンジでは、30秒以上かかる問題「ランダム減少関数」のJavaソリューションが受け入れられましたが、指定された制限時間は2秒です。これは、Javaで許可されている2倍(4秒)をはるかに超えています。
1 に答える
指定された制限時間は、1つのテストファイルのみです。多くのテストファイルがあり、提出の最終時間は、すべてのテストファイルに合格するのにかかった合計時間です。
CodeChef FAQページからの引用:
提出物に表示される実行時間はどういう意味ですか?
CodeChefは、さまざまな入力ファイルを使用してコードを複数回テストする場合があります。コードが各入力ファイルの制限時間内に正解を示した場合、表示される実行時間は各テストケースに費やされた時間の合計です。
コードが入力ファイルを正しく渡さない場合、制限時間は、失敗したファイルまでのすべての入力ファイルの合計時間になりますが、それ以降のファイルは渡されません。
例:それぞれ2秒の制限時間を持つ5つの入力ファイルがあるとします。プログラムは各入力ファイルで1秒間実行され、正解を生成します。表示される合計時間は5秒になります。これは、制限時間が各入力ファイルに個別にのみ適用されるため、問題ありません。
一方、最初の2つの入力ファイルが1秒で正しく、3番目の入力ファイルが1.5秒で正しくない場合を考えてみます。報告される時間は3.5秒になります。
制限時間を超えて非常に短時間で間違った答えに変わると、人々はしばしば混乱します。これは、最初の入力ファイルが小さいためです。間違った答えは、大きな入力ファイルの時間が含まれていないことを意味します。