Closed YeeTone closed 2 years ago
您好,我查看了这道题目的配置,发现产生这类错误的原因是SPJ脚本在测试时未加入状态判断。也就是说,无论用户代码是否正常执行,SPJ脚本都会对输出进行对比并修改原始测评状态。
在SPJ脚本中加入判断。
经测试TLE可以正常被判断。
产生原因
您好,我查看了这道题目的配置,发现产生这类错误的原因是SPJ脚本在测试时未加入状态判断。也就是说,无论用户代码是否正常执行,SPJ脚本都会对输出进行对比并修改原始测评状态。
处理方式
在SPJ脚本中加入判断。
处理结果
经测试TLE可以正常被判断。
感谢及时处理!修复后尝试重测#37337和#37357,测评结果出现部分RE,请问对于这个现象是否有比较合理的解释?
您好,这是由于沙箱限制时间的精度的问题,您遇到的RE实际上是被沙箱kill导致的。建议在时间设置上不使用整数(秒)作为时限,可以适当增加。如修改为2001。具体原因涉及测评机构建,在此不便透露。
适当增加时限。
RE消失,错误类型为TLE
Nice work!
考虑22春季学期中一道时限为2000ms的题目:
使用如下代码提交,由于
Thread.sleep(2250)
的语句,该代码的运行结果应当是超时:但是考虑先后两次相同的提交,ID分别为#37337和#37357,得到的运行结果中并无TLE,而是大部分的WA和少部分的AC:
这是否说明对于超时的检测机制存在一定的漏洞?