Как сдавать домашние задания

На курсе есть несколько видов активностей, которые влияют на вашу оценку:

  • Контесты
  • КДЗ
  • Работа на семинарах
  • Экзамен

Все задания сдаются и проверяются автоматически в системе Яндекс.Контест.

Домашние задания в контесте

Код программ, которые вы будете сдавать в рамках нашего курса, будет проверяться автоматически в системе Яндекс.Контест.

Требования к вводу-выводу

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

Вердикты по задаче

Система выдает один из следующих результатов на каждый запуск.

  • OK — задача прошла успешно.
  • PCF — Precompile check failed — code style violation, вы нарушили какие-то из требований по оформлению кода. Чтобы узнать, какие именно, нажмите на ссылку отчет и почитайте. Также вы можете получить такую ошибку, если использовали при реализации какую-нибудь стандартную структуру данных или какой-нибудь стандартный алгоритм из библиотеки STL, который в данной задаче было использовать запрещено в условии задачи.
  • CE — Compilation Error — ваша программа не компилируется на сервере. Чтобы узнать, почему, нажмите на ссылку «отчет» (она появляется при наведении курсора на строку посылки) и посмотрите, какие ошибки нашел компилятор.
  • WA — Wrong Answer — на некотором тесте программа выдала неверный ответ. Вам не предоставляется возможность увидеть, что это был за тест. Внимательно посмотрите на ограничения в задаче, попробуйте придумать свой тест, на котором ответ будет неправильный.
  • PE — Presentation Error — ошибка представления. Например, просили вывести число, а выведена строка. В этом случае вы можете получить Wrong Answer либо Presentation error, это не гарантируется заранее.
  • TL — Time Limit exceeded — ваша программа работает слишком долго. Значит, у вас неправильное асимптотически решение, так как таймлимиты будут выставляться в 1,5–3 раза больше, чем время работы авторского решения на максимальном тесте, и этого должно хватать любому правильному решению.
  • ML — Memory Limit exceeded — ваша программа использует слишком много памяти.
  • RE — Runtime Error — произошла ошибка выполнения. Неочевидные возможные причины: чтение из файла вместо стандартного ввода; запись в файл вместо стандартного вывода; переполнение стека. Очевидные причины: выход за границы массива, деление на ноль.

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

Сроки

На сдачу домашних задач дается примерно 9,5 суток с момента выдачи контеста. Все дедлайны будут прописаны на странице курса в телеграмме.

Code Review

После тестирования в системе код поступает на внутреннюю проверку. Проверяется каждая задача отдельно и независимо (если противное явно не указано в условии и не было соответствующего объявления), максимальный балл за задачу — 10.

В основном код проверяется на

  1. Соответствие стилю (смотрите документ со стайлгайдом)
  2. Корректность (код должен работать корректно на всех возможных входных данных, которые подходят под условие и ограничения в задаче)
  3. Оптимальность (код должен быть оптимальным (не должна использоваться лишняя память и т.д.))

Актуальные критерии оценки

  1. Нет решения — 0 баллов (база)
  2. Прохождение тестов из условия / компиляция + 1 балл, в зависимости от типа задачи
  3. Несоответствие кодстайлу - 1 балл
  4. Прохождение k тестов + 7 баллов, в зависимости от групп в задаче
  5. Код выдает правильный ответ для любых входных данных, подходящих под условие и ограничения в задаче (offline-тестирование) + 2 балла

Пункт 2 проверяется только при прохождении тестов из условия.

Пункт 4 проверяется только при прохождении всех тестов.

При выявлении списывания списанная задача обнуляется всем участникам списывания. Если в контесте > 1 списанной задачи, то зануляется весь контест.

При использовании читерства в задаче она также зануляется (к примеру, в задаче явным образом запрещалось использовать std::sort или что-то аналогичное, а Вы взяли и заюзали каким-то хитрым образом).

Если Вы не согласны с результатом проверки, то можете проапеллировать результат, написав проверяющему в vk / tg.

КДЗ

TODO

Работа на семинарах

TODO

Экзамен

TODO