Незадолго до конца сессии меня чуть не победила задачка на объединение прямоугольников (деревья отрезков). Это сподвигнуло меня сделать прикольный CLI проект на Go: CFCracker. Это было интересное приключение, и я многое узнал.
В процессе решения задач на Codeforces у меня начала зарождаться мысль о том, как можно вытащить информацию о закрытых тестах. Во-первых мы можем вручную вызывать некоторые вердикты (результаты отправки), такие как неправильный ответ или ошибка времени исполнения. Но это всего лишь один (максимум 2, если найти еще два исхода) бита информации. Потом меня осенило. Самый большой источник информации в отправке - это время исполнения. Я попробовал эту идею ручками, но понял, что показывается лишь максимальное время всех тестов, а значит, мне нужно узнать все тесты до того, который меня интересует. Задача требовала автоматизации.
Cначала мне нужно было понять, как отправлять решения на Codeforces. API для этого нет, да я и не хочу, чтобы пользователю нужен был API ключ. В этом мне помог проект cf-tool. Нужно было просто отправить POST запрос соответствующий form на странице Codeforces.
Перед этим нужно пройти аутентификацию, но благо в go http.Client
подддерживает cookies.
Buy our membership to read further...