Как сдавать домашние задания
На курсе есть несколько видов активностей, которые влияют на вашу оценку:
- Контесты
- КДЗ
- Работа на семинарах
- Экзамен
Все задания сдаются и проверяются автоматически в системе Яндекс.Контест.
Домашние задания в контесте
Код программ, которые вы будете сдавать в рамках нашего курса, будет проверяться автоматически в системе Яндекс.Контест.
Требования к вводу-выводу
Программа должна читать из стандартного входа и писать в стандартный выход. Входной формат гарантируется: будет так, как описано в условии. Строго придерживайтесь выходного формата. Лишние пробелы и лишние переводы строк — не страшно, а вот пропустить пробел, вывести не в том порядке, пропустить перевод строки или вывести что-то лишнее — будет являться ошибкой.
Вердикты по задаче
Система выдает один из следующих результатов на каждый запуск.
- 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.
В основном код проверяется на
- Соответствие стилю (смотрите документ со стайлгайдом)
- Корректность (код должен работать корректно на всех возможных входных данных, которые подходят под условие и ограничения в задаче)
- Оптимальность (код должен быть оптимальным (не должна использоваться лишняя память и т.д.))
Актуальные критерии оценки
- Нет решения — 0 баллов (база)
- Прохождение тестов из условия / компиляция + 1 балл, в зависимости от типа задачи
- Несоответствие кодстайлу - 1 балл
- Прохождение k тестов + 7 баллов, в зависимости от групп в задаче
- Код выдает правильный ответ для любых входных данных, подходящих под условие и ограничения в задаче (offline-тестирование) + 2 балла
Пункт 2 проверяется только при прохождении тестов из условия.
Пункт 4 проверяется только при прохождении всех тестов.
При выявлении списывания списанная задача обнуляется всем участникам списывания. Если в контесте > 1 списанной задачи, то зануляется весь контест.
При использовании читерства в задаче она также зануляется (к примеру, в задаче явным образом запрещалось использовать std::sort
или что-то аналогичное, а Вы взяли и заюзали каким-то хитрым образом).
Если Вы не согласны с результатом проверки, то можете проапеллировать результат, написав проверяющему в vk / tg.
КДЗ
TODO
Работа на семинарах
TODO
Экзамен
TODO