1. Custom checker (PY)
Đây là checker mặc định của website, cho phép người dùng cập nhật được nhiều thông tin nhất (chi tiết xem ở bên dưới). Chúng ta cần hoàn thành hàm check dưới đây:
def check(process_output, judge_output, **kwargs): # return True/False
Trong đó, **kwargs
có thể chứa các biến sau:
process_output:
outputjudge_output:
đáp ánsubmission_source
: Code bài nộpjudge_input
: inputpoint_value:
điểm của test đang chấmcase_position:
thứ tự của testsubmission_language:
ngôn ngữ của bài nộpexecution_time:
thời gian chạy
Return:
- Cách 1: Trả về True/False
- Cách 2: Trả về một object
CheckerResult
có thể được gọi như sauCheckerResult(case_passed_bool, points_awarded, feedback='')
Ví dụ:
Dưới đây là ví dụ cho bài toán: Input gồm 1 số nguyên n. In ra 2 số nguyên a, b sao cho a + b = n.
from dmoj.result import CheckerResult def wa(feedback): return CheckerResult(False, 0, feedback) def check(process_output, judge_output, judge_input, **kwargs): # process the input input_arr = judge_input.split() assert(len(input_arr) == 1) n = int(input_arr[0]) # process the contestant's output output_arr = process_output.split() if (len(output_arr) != 2): return wa('Wrong output format') try: a, b = int(output_arr[0]), int(output_arr[1]) except: return wa('Wrong output format') if (n == a + b): return True return wa('a + b != n')