> For the complete documentation index, see [llms.txt](https://xgn.gitbook.io/hhsoj-essential-doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://xgn.gitbook.io/hhsoj-essential-doc/problem-setup/writing-checkers.md).

# Writing checkers

Mike Mirzayanov!

{% hint style="warning" %}
It's strictly recommended to write checkers in [Testlib.h](https://github.com/MikeMirzayanov/testlib)

Learn it [here](https://codeforces.com/testlib) if you don't know
{% endhint %}

{% tabs %}
{% tab title="Using testlib.h" %}
Write a normal checker in testlib's format and compile it.&#x20;

You are done!
{% endtab %}

{% tab title="Manual" %}
The checker will be called with four arguments:

`checker <input path> <output path> <answer path> <report path>`

You should read from the first three paths and write the checker comment to report path.

Your program should return 0 when the solution is accepted.

Return anything except 0 and 7 when the solution is not correct.

When returning 7, the first token in the report file should be the score of the testcase.
{% endtab %}
{% endtabs %}

The time limit for the checker is 30 seconds.
