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

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

Интерфейс

Мы рекомендуем решать задачи с компьютера: так удобнее, и интерфейс отображается корректно.

Когда вы открываете задачу, экран делится на две части:

  • слева — описание задания,
  • справа — редактор, где вы пишете код.

Python

Структура описания задачи

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

  • условие задачи;
  • формат ввода и вывода — какие данные программа получает и должна вернуть;
  • пример — демонстрирует ожидаемый результат;
  • ограничения — по времени и памяти.

Python

Вы можете ввести код прямо в редакторе или загрузить файл с решением.

Отправка решения

После этого начнётся проверка — код будет протестирован на разных входных данных. Этот процесс занимает некоторое время.

Python

Проверка и тесты

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

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

Python

Статусы проверки

Результаты отображаются в виде вердиктов. Вот основные из них:

  • OK (Accepted) — решение прошло все тесты успешно.
  • WA (Wrong Answer) — программа выдала неверный результат хотя бы на одном из тестов.
  • CE (Compilation Error) — ошибка компиляции.
  • RE (Runtime Error) — ошибка выполнения.
  • TM (Time Limit) — при выполнении превышено допустимое время.
  • ML (Memory Limit) — при выполнении превышена допустимая память.

Wrong Answer

В случае WA для тестов из примеров отображаются:

  • входные данные;
  • вывод вашей программы;
  • ожидаемый правильный ответ;
  • вывод системы.

Python

Это поможет вам отладить решение. Остальные тесты остаются скрытыми — попробуйте сами смоделировать граничные случаи.

Compilation Error

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

Python

Перейдите в «Лог компиляции», чтобы увидеть подробности:

  • тип ошибки;
  • строка, где она возникла;
  • комментарий от компилятора.

Runtime Error

Это ошибка, которая возникает во время выполнения программы.
Возможные причины:

  • деление на ноль;
  • выход за границы массива;
  • необработанное исключение и т. п.

Time Limit и Memory Limit

Эти ошибки возникают в ответ на плохо оптимизированный код.

Например, если встречается «матрёшка» из циклов. Решение тут только одно: вдумчиво изучить код и попробовать его оптимизировать, сделав менее ресурсоёмким.

Совет

Если не удаётся разобраться с ошибкой — не спешите расстраиваться. Попробуйте:

  • упростить тест и воссоздать ситуацию локально;
  • добавить отладочный вывод;
  • обсудить решение с участниками сообщества хендбука.

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

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

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

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

Следующий параграф1.3. Что такое Python

Курс «Python-разработчик»

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