Handle AC display in partial checker

This commit is contained in:
cuom1999 2020-07-29 16:36:54 -05:00
parent f838f20d00
commit 7c8cd4632b
2 changed files with 5 additions and 3 deletions

View file

@ -102,7 +102,7 @@ main.exe [input_file] [output_file] [ans_file]</pre>
<ul> <ul>
<li> 0 nếu AC (100% điểm)</li> <li> 0 nếu AC (100% điểm)</li>
<li> 1 nếu WA (0 điểm)</li> <li> 1 nếu WA (0 điểm)</li>
<li> 2 nếu điểm thành phần (sẽ hiển thị là WA). Khi đó cần in ra stderr một số thực trong đoạn [0, 1) thể hiện cho tỷ lệ điểm. </li> <li> 2 nếu điểm thành phần. Khi đó cần in ra stderr một số thực trong đoạn [0, 1] thể hiện cho tỷ lệ điểm. Nếu điểm < 1 thì hiển thị WA, điểm = 1 thì hiển thị AC. </li>
</ul> </ul>
Những thông tin được viết ra stdout (bằng cout) sẽ được in ra màn hình cho người nộp bài(feedback) Những thông tin được viết ra stdout (bằng cout) sẽ được in ra màn hình cho người nộp bài(feedback)
</p> </p>

View file

@ -39,9 +39,11 @@ class Module:
if not match: if not match:
raise InternalError('Invalid stderr for partial points: %r' % stderr) raise InternalError('Invalid stderr for partial points: %r' % stderr)
points = float(match.group(0)) points = float(match.group(0))
if not 0 <= points < 1: if not 0 <= points <= 1:
raise InternalError('Invalid partial points: %d' % points) raise InternalError('Invalid partial points: %d' % points)
return CheckerResult(False, points * point_value, feedback=feedback)
ac = (points == 1)
return CheckerResult(ac, points * point_value, feedback=feedback)
elif proc.returncode == cls.WA: elif proc.returncode == cls.WA:
return CheckerResult(False, 0, feedback=feedback) return CheckerResult(False, 0, feedback=feedback)
else: else: