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

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

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

Интерфейс

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Предыдущая
Следующая