---
metadata:
  - name: generator
    content: Diplodoc Platform v5.48.2
alternate:
  - https://admin.contest.yandex.ru/docs/ru/guide/problem/checker.md
---
> **Documentation Index:** Fetch the complete configuration index at https://admin.contest.yandex.ru/docs/ru/llms.txt

# Настройки чекера

Чтобы открыть настройки чекера задачи, на вкладке **Задачи** нажмите на ее название и в меню слева выберите **Настройки чекера**.

#|
||**Параметр**| **Описание**||
||**Скомпилировать чекер**|Открывает модальное окно для выбора файла чекера на компиляцию. Файл будет скомпилирован в выбранном окружении платформы и сохранен как исполняемый файл.||
||**Тип чекера**|
<!-- source: ru/_includes/reusables/id-reusables/checker-type-p.md -->
На основе какой системы был загружен чекер. Возможные значения:
- **STANDARD_CHECKER**&nbsp;— стандартный чекер Контеста. Выбран по умолчанию.
- **EJUDGE_EXITCODE_CHECKER**&nbsp;— оперирует кодами возврата системы [Ejudge](https://ejudge.ru/wiki/index.php/Serve.cfg:problem:scoring_checker).
- **TESTLIB_EXITCODE_CHECKER**&nbsp;— оперирует кодами возврата библиотеки [testlib](https://github.com/MikeMirzayanov/testlib).
- **TESTLIB_CHECKER**&nbsp;— оперирует кодами возврата библиотеки [ testlib для Pascal](https://olympiads.ru/school/system/testlib/testlib.shtml).
После успешной компиляции в этом поле будет указано значение, выбранное при загрузке файла чекера.
<!-- endsource: ru/_includes/reusables/id-reusables/checker-type-p.md -->
||
||**ID чекера**|
<!-- source: ru/_includes/reusables/id-reusables/only-for-standard.md -->
Только для типа **STANDARD_CHECKER**.
<!-- endsource: ru/_includes/reusables/id-reusables/only-for-standard.md -->

<!-- source: ru/_includes/reusables/id-reusables/standart-checkers-p.md -->
Название встроенного чекера. В Контесте используются стандартные чекеры других систем и собственные: 

{% cut "Стандартные проверяющие программы" %}


- **fcmp**&nbsp;— сравнивает файлы построчно, игнорирует пробелы на концах строк.
- **hcmp**&nbsp;— сравнивает два целых числа со знаком любой длины.
- **icmp**&nbsp;— сравнивает два 32-битных целых числа со знаком.
- **lcmp**&nbsp;— сравнивает файлы в виде последовательностей токенов в строках.
- **ncmp**&nbsp;— сравнивает последовательности 32-битных целых чисел со знаком.
- **rncmp**&nbsp;— сравнивает два вещественных числа с максимальной абсолютной погрешностью $1,5\times10^{-5}$.
- **rncmpN**&nbsp;— сравнивает два вещественных числа с максимальной абсолютной погрешностью $10^{-N}$.
- **wcmp**&nbsp;— сравнивает файлы, игнорируя лишние пробелы и переносы между словами.
- **yesno**&nbsp;— сравнивает два ответа `YES` или `NO` независимо от регистра.
- **cmp_file**&nbsp;— построчно сравнивает два файла. Выбран по умолчанию.
- **cmp_file_nospace**&nbsp;— сравнивает два файла с игнорированием повторяющихся пробелов.
- **cmp_bytes**&nbsp;— побайтово сравнивает два файла.
- **cmp_int**&nbsp;— сравнивает два 32-битных целых числа со знаком.
- **cmp_int_seq**&nbsp;— сравнивает две последовательности 32-битных целых чисел со знаком.
- **cmp_long_long**&nbsp;— сравнивает два 64-битных целых числа со знаком.
- **cmp_long_long_seq**&nbsp;— сравнивает две последовательности 64-битных целых чисел со знаком.
- **cmp_unsigned_int**&nbsp;— сравнивает два 32-битных целых числа без знака.
- **cmp_unsigned_int_seq**&nbsp;— сравнивает две последовательности 32-битных целых чисел без знака.
- **cmp_unsigned_long_long**&nbsp;— сравнивает два 64-битных целых числа без знака.
- **cmp_unsigned_long_long_seq**&nbsp;— сравнивает две последовательности 64-битных целых чисел без знака.
- **cmp_huge_int**&nbsp;— сравнивает два целых числа произвольного размера.
- **cmp_double**&nbsp;— сравнивает два вещественных числа двойной точности с заданной максимальной ошибкой.
- **сmp_double_seq**&nbsp;— сравнивает две последовательности вещественных чисел двойной точности с заданной максимальной ошибкой.
- **cmp_long_double**&nbsp;— сравнивает два вещественных числа расширенной точности с заданной максимальной ошибкой.
- **cmp_long_double_seq**&nbsp;— сравнивает две последовательности вещественных чисел расширенной точности с заданной максимальной ошибкой.
- **cmp_sexpr**&nbsp;— сравнивает два S-выражения в синтаксисе языка Lisp.
- **cmp_yesno**&nbsp;— сравнивает два ответа `YES` или `NO` зависимо от регистра.
- **cmp_range**&nbsp;— проверяет наличие ответа в указанном диапазоне с максимальной абсолютной погрешностью $10^{-8}$.


{% endcut %}

{% cut "Проверяющие программы Контеста" %}


- **ok**&nbsp;— всегда возвращает `ОК`. Полезен для [интерактивных](https://admin.contest.yandex.ru/docs/ru/examples/interactive.md) и [Make](https://admin.contest.yandex.ru/docs/ru/examples/advanced-usage/default-tests-for-language.md)-задач.
- **rangencmp**&nbsp;— проверяет наличие ответа в заданном интервале. В качестве правильного ответа принимает файл с двумя вещественными числами&nbsp;— минимальный и максимальный возможный ответ. В качестве ответа участника ожидается файл с одним вещественным числом.
- **regexcmp**&nbsp;— сравнивает ответ участника с [регулярным выражением](https://en.cppreference.com/w/cpp/regex/ecmascript). В качестве правильного ответа принимается файл с регулярным выражением.
- **anycmp**&nbsp;— проверяет наличие ответа участника в указанных строках. В качестве правильного ответа принимается файл, в котором каждая строка является правильным вариантом ответа. В качестве ответа участника принимается файл с одной строкой.


{% endcut %}
<!-- endsource: ru/_includes/reusables/id-reusables/standart-checkers-p.md -->
||
||**Чекер выставляет баллы**|
<!-- source: ru/_includes/reusables/id-reusables/only-for-ejudge-testlib.md -->
Только для типов **EJUDGE_EXITCODE_CHECKER** и **TESTLIB_EXITCODE_CHECKER**.
<!-- endsource: ru/_includes/reusables/id-reusables/only-for-ejudge-testlib.md -->

<!-- source: ru/_includes/reusables/id-reusables/checker-points.md -->
Добавить чекеру возможность возвращать баллы за тест.
<!-- endsource: ru/_includes/reusables/id-reusables/checker-points.md -->
||
|| **Ограничение по времени**| 
<!-- source: ru/_includes/reusables/id-reusables/max-time-checker.md -->
Максимальное время запуска чекера.
<!-- endsource: ru/_includes/reusables/id-reusables/max-time-checker.md -->

<!-- source: ru/_includes/reusables/id-reusables/after-time-crash.md -->
После указанного времени решение получит вердикт `«не удалось протестировать» (Crash)`.
<!-- endsource: ru/_includes/reusables/id-reusables/after-time-crash.md -->
||
||**Ограничение по времени ожидания**|
<!-- source: ru/_includes/reusables/id-reusables/max-wait-checker.md -->
Максимальное время ожидания при запуске чекера.
<!-- endsource: ru/_includes/reusables/id-reusables/max-wait-checker.md -->

<!-- source: ru/_includes/reusables/id-reusables/after-time-crash.md -->
После указанного времени решение получит вердикт `«не удалось протестировать» (Crash)`.
<!-- endsource: ru/_includes/reusables/id-reusables/after-time-crash.md -->
||
|| **Ограничение памяти**|
<!-- source: ru/_includes/reusables/id-reusables/max-om-checker.md -->
Максимальный объем оперативной памяти, который может использоваться при запуске чекера.
<!-- endsource: ru/_includes/reusables/id-reusables/max-om-checker.md -->

<!-- source: ru/_includes/reusables/id-reusables/after-value-crash.md -->
При превышении значения решение получит вердикт `«не удалось протестировать» (Crash)`.
<!-- endsource: ru/_includes/reusables/id-reusables/after-value-crash.md -->
||
||**Ограничение на объем вывода**|
<!-- source: ru/_includes/reusables/id-reusables/max-stream-data-checker.md -->
Максимальное количество данных в потоке вывода во время работы чекера.
<!-- endsource: ru/_includes/reusables/id-reusables/max-stream-data-checker.md -->

<!-- source: ru/_includes/reusables/id-reusables/after-value-crash.md -->
При превышении значения решение получит вердикт `«не удалось протестировать» (Crash)`.
<!-- endsource: ru/_includes/reusables/id-reusables/after-value-crash.md -->
||
||**Окружение**|
<!-- source: ru/_includes/reusables/id-reusables/only-for-ejudge-and-two-testlibs.md -->
Только для типов **EJUDGE_EXITCODE_CHECKER**, **TESTLIB_EXITCODE_CHECKER** и **TESTLIB_CHECKER**.
<!-- endsource: ru/_includes/reusables/id-reusables/only-for-ejudge-and-two-testlibs.md -->

<!-- source: ru/_includes/reusables/id-reusables/environment-checker.md -->
Окружение с выбранным компилятором будет использовано для запуска чекера.

Опцию **Legacy** можно заменить на другую, но после изменения вернуться к ней будет невозможно.
<!-- endsource: ru/_includes/reusables/id-reusables/environment-checker.md -->
||
||**Файлы чекера**|
<!-- source: ru/_includes/reusables/id-reusables/only-for-ejudge-and-two-testlibs.md -->
Только для типов **EJUDGE_EXITCODE_CHECKER**, **TESTLIB_EXITCODE_CHECKER** и **TESTLIB_CHECKER**.
<!-- endsource: ru/_includes/reusables/id-reusables/only-for-ejudge-and-two-testlibs.md -->

<!-- source: ru/_includes/reusables/id-reusables/files-checkers.md -->
Добавить файлы, необходимые для корректной работы чекера. Первым добавляйте его скомпилированный исполняемый файл.
<!-- endsource: ru/_includes/reusables/id-reusables/files-checkers.md -->
||
|#

<!-- source: ru/_includes/reusables/support-button.md -->
<a href="../../troubleshooting">
  <span class="button">Написать в службу поддержки</span>
</a>



<!-- endsource: ru/_includes/reusables/support-button.md -->
