Đâ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:
<li><code>point_value:</code> điểm của test đang chấm</li>
<li><code>case_position:</code> thứ tự của test</li>
<li><code>submission_language:</code> ngôn ngữ của bài nộp</li>
<li><code>execution_time:</code> thời gian chạy</li>
</ul>
<h2>Return: </h2>
<ul>
<li>Cách 1: Trả về True/False</li>
<li>Cách 2: Trả về một object <code>CheckerResult</code> có thể được gọi như sau <preclass="code2">CheckerResult(case_passed_bool, points_awarded, feedback='')</pre></li>
</ul>
<h2>Ví dụ: </h2>
<p>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.
Để sử dụng chức năng này, cần viết một chương trình C++ pass vào 3 arguments theo thứ tự <code>input_file</code>, <code>output_file</code>, <code>ans_file</code> tương ứng với các file input, output, đáp án.
</p>
<p>
Để test chương trình trên máy tính, có thể dùng lệnh như sau (Windows):
hoặc thay bằng <code>./main</code> trên Linux/MacOS.
</p>
<h2>Return: </h2>
<p>
Chương trình trả về giá trị:
<ul>
<li> 0 nếu AC (100% điểm)</li>
<li> 1 nếu WA (0 đ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 <1thìhiểnthịWA,điểm =1thìhiểnthịAC.</li>
</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)
</p>
<h2>Ví dụ: </h2>
<p>Chương trình sau dùng để chấm bài toán: Cho n là một số nguyên dương. In ra hai số tự nhiên a, b sao cho a + b = n. </p>
<p>Nếu in ra a + b = n và a, b >= 0 thì được 100% số điểm, nếu a + b = n nhưng một trong 2 số a, b âm thì được 50% số điểm. </p>
Để sử dụng chức năng này, cần viết một chương trình C++ pass vào 2 arguments <code>input_file</code><code>answer_file</code> tương ứng file input và đáp án (nếu cần thiết).
hoặc thay bằng <code>./main</code> trên Linux/MacOS.
</p>
<h2>Return: </h2>
<p>
Chương trình trả về giá trị:
<ul>
<li> 0 nếu AC (100% điểm)</li>
<li> 1 nếu WA (0 đ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 <1thìhiểnthịWA,điểm =1thìhiểnthịAC.</li>
</ul>
Thông tin được in ra trong stderr (bằng cerr) sẽ là feedback hiển thị cho người dùng.
</p>
<h2>Ví dụ: </h2>
<p>Chương trình sau dùng để chấm bài toán guessgame: Người chơi phải tìm 1 số bí mật n (n chứa trong file input). Mỗi lần họ được hỏi một số x, và chương trình sẽ trả về "SMALLER", "BIGGER" hoặc "HOLA" dựa trên giá trị của n và x. Cần tìm ra n sau không quá 31 câu hỏi. </p>
{{
"""
#include <bits/stdc++.h>
using namespace std;
void quit(string reason) {
cerr <<reason<<endl;
exit(1);
}
void read(long long& guess) {
if (!(cin >> guess)) exit(1); // Nếu không có dòng này, chương trình sẽ chờ vô hạn