7.1. Как работать с системой проверки заданий

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

Давайте разбираться!

Интерфейс

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

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

Python

Описание задачи включает:

  • Условие.

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

  • Пример. Здесь показаны результаты, которые должна выдать программа при правильной обработке данных.

  • Ограничения по памяти и времени, в которые должна уложиться ваша программа.

Python

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

Python

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

Пары входных и выходных тестовых данных называются тестами.

Проверка решения может занять некоторое время, отследить прогресс проверки вы можете на вкладке «Отправленные решения».

Python

В зависимости от результата проверки вы увидите статус:

  • Решена полностью — ваше решение успешно скомпилировалось и прошло все тесты.
  • Решена неверно — код не компилируется или не проходит тестирование.

Как понять в чем ошибка?

Чтобы узнать детали проверки, нужно перейти внутрь теста:

Python

Здесь вы увидите вердикт по решению. Вот некоторые варианты вердиктов:

  1. OK — решение прошло все тесты.

  2. CE (Compilation Error) — ошибка компиляции, в программе допущена синтаксическая или семантическая ошибка.

В этом случае разобраться поможет отчёт об ошибке в блоке «Лог компиляции»:

Python

Система подскажет, какого рода ошибка присутствует в коде, и в какой строке она находится.

  1. WA (Wrong Answer) — ваша программа выдала неправильный результат на одном из тестов.

Для тестов из примеров отображается ввод, вывод вашей программы, вывод системы проверки ответа и правильный ответ. Это поможет с отладкой вашей программы.

Python

Мы не раскрываем другие тестовые данные. Попробуйте самостоятельно рассмотреть различные нетривиальные варианты входных данных и проверить, как на них отрабатывает ваше решение. Это поможет вам научиться тестировать свой код самостоятельно.

  1. RE (Runtime Error) — ошибка выполнения. Например, это может быть ошибка выхода за границы массива или необработанные исключения.

  2. TL (Time Limit) — на одном из тестов решение работает слишком долго.

  3. ML (Memory Limit) — на одном из тестов решение потребляет слишком много памяти.

Подробный список ответов проверяющей системы можно посмотреть здесь.

В случае, если вы чувствуете, что вам необходима поддержка и взгляд со стороны, попробуйте обсудить задачу с участниками комьюнити хендбука.

Вот и всё! Надеемся, что эти советы помогут разобраться с системой проверки заданий. Желаем успехов в учёбе!

Отмечайте параграфы как прочитанные чтобы видеть свой прогресс обучения

Вступайте в сообщество хендбука

Здесь можно найти единомышленников, экспертов и просто интересных собеседников. А ещё — получить помощь или поделиться знаниями.
Вступить
Сообщить об ошибке
Предыдущий параграф6.3. Модуль requests

И наконец рассмотрим применение модуля requests для создания и отправки запросов по протоколу HTTP — и научимся взаимодействовать с API-сервисами.

Следующий параграф7.2. Как пользоваться хендбуком