Участие в соревнованиях

Типы соревнований

На Яндекс.Контесте проводятся следующие соревнования:

  • По типу участников: индивидуальные, командные и смешанные.
  • По типу доступа:
    • Открытые — в соревновании может участвовать любой участник, подходящий под требования соревнования.
    • Закрытые — соревнование проводится между заранее выбранными участниками. Если вы не приглашены организаторами, то не сможете участвовать в соревновании.
  • По времени начала:
    • Реальные — все участники начинают и заканчивают соревнование одновременно.
    • Виртуальные — соревнование проводится с плавающей датой начала. Как правило, время на решение задач соревнования ограничено. Результаты ранжируются по времени, затраченному на решение задач, как если бы остальные участники одновременно с вами участвовали в соревновании.

    Также, на платформе могут проводиться соревнования без ограничений по времени: пробные туры, контрольные работы к учебным курсам, сертификационные экзамены и т. п.

Схема проведения соревнований

Соревнования обычно проводятся по следующей схеме:

  1. Организаторы создают соревнование и публикуют его анонс на Яндекс.Контесте и профильных ресурсах. Начинается подбор участников.
  2. Вы регистрируетесь как участник соревнования. Если к участникам предъявляются специальные требования, то организаторы проверяют предоставленные вами сведения и принимают решение, допускать ли вас к соревнованию.
  3. После начала соревнования вы решаете задачи, проверяя их на сервере тестирования. Проверка решений производится автоматически, в зависимости от правил проведения соревнования вы можете видеть предварительный или окончательный результат проверки.
  4. После окончания соревнования жюри подводит итоги и формирует итоговую турнирную таблицу. По правилам соревнования определяется победитель.

Эта схема применяется как для индивидуальных, так и для командных соревнований. Если для соревнования предусмотрена другая схема проведения, это объявляется его организаторами.

Правила проведения соревнований

Правила проведения определяются организаторами соревнований. Организаторы могут использовать один из стандартных наборов правил или создать свой собственный набор.

Наиболее часто в соревнованиях используются следующие правила:

ACM International Collegiate Programming Contest (ACM-ICPC)
  • Побеждает участник, правильно решивший наибольшее количество задач.

  • Если несколько участников решают одинаковое количество задач, то выше в рейтинге будет участник с меньшим штрафным временем.

  • Изначально штрафное время каждого участника равно нулю. За каждую решенную задачу к штрафному времени участника прибавляется время, прошедшее с момента начала соревнования до момента сдачи правильного решения. Кроме того, если зачтенной попытке предшествовало несколько неудачных попыток сдать ту же задачу, то за каждую из них к штрафному времени прибавляется 20 минут. За неудачные попытки сдать задачу, которую участнику в итоге так и не удалось решить, штрафное время не начисляется.

  • Задача считается решенной, если решением были пройдены все тесты без превышения ограничений по времени и используемой памяти.

Школа анализа данных (ШАД)
  • Побеждает участник, набравший больше всего баллов.

  • Каждая задача имеет оценку в баллах.

  • Каждый вид ошибки имеет оценку в баллах.

  • Изначально количество набранных участником баллов равно нулю. За каждую решенную задачу участник получает соответствующее количество баллов. Каждая неудачная попытка решения уменьшает баллы участника на «стоимость» обнаруженной ошибки, но общее количество баллов не может стать меньше нуля.

  • Задача считается решенной, если решением были пройдены все тесты без превышения ограничений по времени и используемой памяти.

International Olympiad in Informatics (IOI)
  • Побеждает участник, набравший больше всего баллов.

  • Для каждой задачи определено правило начисления баллов в зависимости от набора пройденных тестов. Каждое отправленное решение проверяется всеми предусмотренными тестами.

Scoring
  • Побеждает участник, набравший больше всего баллов.

  • Каждое отправленное решение индивидуально оценивается жюри в баллах.

TCM/TIME
  • Побеждает участник, правильно решивший наибольшее количество задач.

  • Если несколько участников решают одинаковое количество задач, то выше в рейтинге будет участник с меньшим штрафным временем.

  • Изначально штрафное время каждого участника равно нулю.Количество начисляемого за задачу штрафного времени зависит от способа, который участник выбрал для проверки ее решений. Для каждой задачи способ проверки решений выбирается один раз и не может быть изменен:

    • В открытую — каждое отправляемое решение проверяется полным набором системных тестов, вердикт становится известен участнику сразу же.

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

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

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

      Если решение было отправлено вслепую и не прошло промежуточные тесты, то штрафное время за него не начисляется.

  • Задача считается решенной, если решением были пройдены все системные или промежуточные тесты без превышения ограничений по времени и используемой памяти.

Используемые языки и компиляторы

Список всех поддерживаемых платформой Яндекс.Контест языков программирования и их компиляторов приведен на странице Настройки компиляторов. На вкладке также указана конфигурация сервера тестирования.

Если в соревновании используются другие языки или версии компиляторов, это объявляется организаторами соревнования.