Это список Часто задаваемых Вопросов и Ответов, относящихся к работе Codeforces.
- Что такое Codeforces? Что это за сайт/ресурс?
- Что надо сделать для участия в соревновании? Нужна ли предварительная регистрация?
- По каким правилам проводятся соревнования?
- На каких языках здесь можно решать задачи? Есть примеры решений?
- Я бы хотел провести раунд Codeforces по своим задачам. Что для этого надо сделать? Положено ли вознаграждение авторам?
- Какие еще существуют правила на Codeforces?
- Какие технические детали полезно знать о тестирующей системе Codeforces?
- Что такое рейтинг, дивизионы?
- Что такое вклад?
- С какими постами в блогах полезно ознакомиться?
- Я заметил, что на сайте публикуются решения всех участников и тесты с прошедших соревнований. Каким образом разрешено их использовать?
Вопросы и ответы:
- Что такое Codeforces? Что это за сайт/ресурс? Codeforces — проект, объединяющий людей, которые интересуются и участвуют в соревнованиях по программированию. С одной стороны Codeforces является социальной сетью, посвященной программированию и соревнованиям по программированию. С другой стороны — это площадка, где регулярно проводятся соревнования, навыки участников отражает рейтинг, а прошедшие соревнования могут быть использованы для подготовки. Codeforces постоянно развивается, и в наших планах усовершенствование платформы для предоставления возможностей проводить контесты участникам самостоятельно, наполнение проекта учебным контентом, развитие Codeforces как тренировочной и учебной платформы.
- Что надо сделать для участия в соревновании? Нужна ли предварительная регистрация? На Codeforces регулярно проводятся соревнования, участие в которых бесплатно и открыто для всех. Каждый месяц мы проводим ориентировочно шесть соревнований. Для участия вам необходимо зарегистрироваться на сайте (если у вас есть OpenID или Gmail-аккаунт, то не придется даже запоминать пароль), и зарегистрироваться на предстоящее соревнование. Убедитесь, что вы присутствуете в списке зарегистрированных на контест до окончания регистрации. Обычно, если вы не можете принять участие в соревновании официально (например, это соревнование для второго дивизиона, а вы в первом), то можно зарегистрироваться на соревнование для участия вне конкурса.
- По каким правилам проводятся соревнования? Обычно, они проходят по специальным правилам Codeforces. Если оговорено особо, то могут быть использованы правила международных студенческих соревнований по программированию ACM-ICPC или какие-либо другие модификации. Если коротко, то на соревнованиях по правилам Codeforces вы пишите решения задач, которые во время соревнования тестируются только на небольшом наборе тестов. Прошедшие этот набор тестов решения, их авторы могут блокировать (отказаться от перепосылки решения по этой задаче в будущем, даже в случае обнаружения у себя ошибки). Такие авторы получают возможность просматривать исходники других участников, искать в них ошибки и предлагать тесты, на которых эти решения не работают. Таким образом, можно взломать чужое решение, заработав на этом баллы. После соревнования, все решения, которые прошли претесты и не были взломаны, тестируются на финальном наборе тестов. Задачи дешевеют во время соревнования (чем сдал быстрее, тем больше баллов), неудачные взломы снимают баллы, а успешные — добавляют. Ознакомьтесь с подробной версией правил перед участием.
- На каких языках здесь можно решать задачи? Есть примеры решений? Прочтите пост о технических подробностях на Codeforces.
- Я бы хотел провести раунд Codeforces по своим задачам. Что для этого надо сделать? Положено ли вознаграждение авторам? Хотите провести раунд? Отлично! Мы очень рады! Пожалуйста, прочтите пост и следуйте инструкциям из него.
- Какие еще существуют правила на Codeforces? Мы не имеем четкого Великого-Свода-Правил-Поведения-На-Codeforces. Однако, разумеется, здесь надо вести себя в соответствии с традиционными требованиями поведения в общественных местах и тематических сообществах. Следующие пункты, конечно, необходимо соблюдать:
- Не создавайте более одного аккаунта, если вы забыли пароль, то воспользуйтесь системой напоминания пароля.
- Не используйте грубый, оскорбительный или вводящий в заблуждение хэндл.
- Не используйте чужое фото в профиле, это некрасиво и вводит в заблуждение членов сообщества.
- Не грубите, не оскорбляйте других участников и представителей администрации, старайтесь быть вежливым, чтобы с вами было приятно общаться.
- Участвуя в личных соревнованиях, не общайтесь на тему задач с другими участниками, не используйте чужой код для вставки его в свои решения. Если соревнование командное — обсуждайте задачи только с членами команды.
- Не пытайтесь дестабилизировать работу как сайта, так и проверяющей системы. Ваши программы должны взаимодействовать только с консолью (для задач со стандартным вводом-выводом) или файлами входных и выходных данных.
- Не публикуйте, не распространяйте свои решения и идеи решений во время соревнования.
- Какие технические детали полезно знать о тестирующей системе Codeforces? Система Codeforces напоминает классические Online Judges. Решения тестируются на заранее приготовленных тестах (или взломах, предложенных другими участниками). В результате вы получаете вердикты, смысл которых понятен из названия. Отдельно стоит отметить, что на Codeforces нет вердикта "Ошибка представления данных" (Presentation Error), подобная ситуация трактуется как "Неправильный ответ" (Wrong Answer). Все сомнительные вердикты ("Ошибка тестирования" и др.) не учитываются при подведении результатов, равно как и решения, упавшие на тесте 1 (в задачах, где более одного теста).
- Что такое рейтинг, дивизионы? Участвуя в соревнованиях на Codeforces, участники увеличивают (или уменьшают) свой рейтинг, который отражает их умение решать задачи. Рейтинг является модификацией рейтинга Эло, некоторые детали можно прочитать в более подробном изложении. В соответствии с рейтингом, участники делятся на два дивизиона: второй (послабее, любители) и первый (посильнее, профессионалы). Участники, не принимающие участвующие в соревнованиях, и те, чей рейтинг менее 1900, относятся ко второму дивизиону. Рейтинг 1900+ обозначает участие в первом дивизионе. Обычно на Codeforces проводятся два вида соревнований: для участников второго дивизиона (участники первого могут принимать участие в них вне конкурса) и для обоих дивизионов. Первый вид соревнований содержит более простые и учебные задачи.
- Что такое вклад? Голоса за посты и комментарии пользователя изменяют его вклад. Вклад призван отображать полезность участника сообщества. Система подсчета вклада несовершенна, в будущем правила ее подсчета будут изменены.
- С какими постами в блогах полезно ознакомиться?
- Я заметил, что на сайте публикуются решения всех участников и тесты с прошедших соревнований. Каким образом разрешено их использовать? В самом деле, мы публикуем материалы с прошедших соревнований и они могут быть использованы, например, для индивидуальных занятий. Использование материалов на других Online Judges, публичных соревнованиях и т.п. запрещено. Обязательно прочтите лицензию, перед использованием материалов.Для того, чтобы просмотреть свое или чужое решение, достаточно кликнуть на его идентификатор на странице "Статус". Во всплывающем окне вместе с исходным кодом, будет находиться протокол тестирования, содержащий все тесты. Со страницы со списком задач можно перейти на список правильных решений по заданной задачи. Внизу страниц "Статус" (и других со списками решений) есть возможность сортировки решений по различным критериям.