В конце некоторых параграфов вы можете встретить задачи, которые помогут вам лучше разобраться в теме. В этом приложении мы расскажем, как работать с системой их проверки. Спойлер: это не сложно, но есть нюансы.
Давайте разбираться!
Интерфейс
Самое главное: мы рекомендуем решать задачи с десктопных устройств. Это удобнее, плюс в мобильной версии некоторые элементы могут отображаться некорректно.
Далее — поговорим об интерфейсе. При переходе внутрь задачи вы увидите в левой части экрана описание, а в правой — поле редактора, в котором можно писать код решения.

Описание задачи включает:
-
Условие.
-
Формат ввода/вывода. В этом блоке описаны данные, аналогичные тем, что будут переданы в вашу программу при автоматической проверке задания. Конкретный пример входных данных можно посмотреть в блоке «Пример» (о нём далее).
-
Пример. Здесь показаны результаты, которые должна выдать программа при правильной обработке данных.
-
Ограничения по памяти и времени, в которые должна уложиться ваша программа.

Отправить решение можно через поле редактора, либо загрузив файл с вашей программой.

После отправки решения система обработает ваш код и начнёт тестировать его на различных вариантах входных данных, сопоставляя ожидаемый эталонный вывод с результатами работы вашего кода.
Пары входных и выходных тестовых данных называются тестами.
Проверка решения может занять некоторое время, отследить прогресс проверки вы можете на вкладке «Отправленные решения».

В зависимости от результата проверки вы увидите статус:
- Решена полностью — ваше решение успешно скомпилировалось и прошло все тесты.
- Решена неверно — код не компилируется или не проходит тестирование.
Как понять в чем ошибка?
Чтобы узнать детали проверки, нужно перейти внутрь теста:

Здесь вы увидите вердикт по решению. Вот некоторые варианты вердиктов:
-
OK — решение прошло все тесты.
-
CE (Compilation Error) — ошибка компиляции, в программе допущена синтаксическая или семантическая ошибка.
В этом случае разобраться поможет отчёт об ошибке в блоке «Лог компиляции»:

Система подскажет, какого рода ошибка присутствует в коде, и в какой строке она находится.
- WA (Wrong Answer) — ваша программа выдала неправильный результат на одном из тестов.
Для тестов из примеров отображается ввод, вывод вашей программы, вывод системы проверки ответа и правильный ответ. Это поможет с отладкой вашей программы.

Мы не раскрываем другие тестовые данные. Попробуйте самостоятельно рассмотреть различные нетривиальные варианты входных данных и проверить, как на них отрабатывает ваше решение. Это поможет вам научиться тестировать свой код самостоятельно.
-
RE (Runtime Error) — ошибка выполнения. Например, это может быть ошибка выхода за границы массива или необработанные исключения.
-
TL (Time Limit) — на одном из тестов решение работает слишком долго.
-
ML (Memory Limit) — на одном из тестов решение потребляет слишком много памяти.
Подробный список ответов проверяющей системы можно посмотреть здесь.
В случае, если вы чувствуете, что вам необходима поддержка и взгляд со стороны, попробуйте обсудить задачу с участниками комьюнити хендбука.
Вот и всё! Надеемся, что эти советы помогут разобраться с системой проверки заданий. Желаем успехов в учёбе!