Как вы наверняка знаете, большинство раундов на Codeforces созданы активными участниками нашего сообщества. Мы очень благодарны талантливым авторам со всего мира за то, что они знакомят десятки тысяч участников наших соревнований со своими идеями, предоставляя возможность учиться и получать удовольствие от решения задач как новичкам, так и лучшим в мире спортивным программистам. Этот пост расскажет, как стать автором задач и провести раунд на Codeforces.
Кто может стать автором
Обычно авторами наиболее интересных и качественных задач являются опытные участники. Так как наши ресурсы по обработке предложений задач ограничены, то с 1-го января 2021, для предложения своих задач вы должны удовлетворять следующим условиям:
- рейтинг — 2100 или выше, или
- уже был автором.
В будущем ограничения могут быть изменены, пост будет обновлен. Если вы уже открыли ваш раунд для ревью, то он будет рассмотрен независимо от действующих ограничений, не волнуйтесь.
Если вы не подходите под данные ограничения, но являетесь опытным автором задач или членом жюри других соревнований, напишите личное сообщение кому-нибудь из координаторов (перечислены ниже) о своем желании провести раунд и о вашем опыте проведения соревнований.
Как предложить раунд
Если вы удовлетворяете ограничениям, в правом личном меню у вас будет ссылка "Предложить контест/задачи". Нажмите на ссылку и, следуя инструкциям, вы сможете подготовить и отправить свое предложение раунда.
Через некоторое время вам будет назначен координатор(ы). Они рассмотрят ваше предложение, напишут комментарии, и вы сможете обсудить задачи с ними. Пожалуйста, не затягивайте, отвечайте координатором и вносите предложенные поправки вовремя. Координаторы Codeforces — очень опытные участники и авторы задач, поэтому, пожалуйста, уважайте их мнение. Учтите, что их мнение по задачам будет решающим.
Наши опытные координаторы: Aleks5d, errorgorn, irkstepanov, IgorI, Artyom123, 74TrAkToR, ScarletS, Akulyat, TheScrasse, 244mhq, satyam343, Vladithur и KAN.
Вы можете предложить только набор задач для Div 2 или Div 1 + Div 2 раунда целиком. Мы не рассматриваем предложения отдельных задач. Также мы не рассматриваем предложения Div 3/4 и образовательных раундов.
Как подготовить задачи
Задачи для раундов Codeforces готовятся в системе Polygon. Не рекомендуется начинать подготовку задач до того, как они будут согласованы с координатором, особенно, если это ваш первый раунд.
Для каждой задачи вам нужно будет написать понятное условие (на русском или английском языке), написать валидатор (программу, которая проверяет корректность тестов), если нужно, чекер (программу, которая проверяет ответ участника), и, конечно, правильное решение. Также вам нужно будет подготовить тесты, на которых будут тестироваться решения участников. Ваш координатор переведет условие, если нужно, а также будет проверять вашу работу и скажет, что нужно изменить или добавить.
Перед тем, как начать работу над задачами, даже если у вас ест опыт работы с Polygon, обязательно прочитайте правила. Все чекеры, валидаторы, интеракторы и генераторы пишутся, используя библиотеку testlib.h. Вы можете прочитать описание по ссылке и скачать примеры из Polygon. Если у вас возникают какие-то проблемы или сложности в подготовке задач, смело обращайтесь к вашему координатору, он поможет. Лучше и быстрее сразу сделать что-то правильно, чем сделать неправильно и затем переделывать.
Вознаграждение авторам
Придумывать и готовить задачи — интересная, но в то же время непростая и объемная работа. Авторы раундов на Codeforces получают вознаграждение, указанное в таблице:
Тип раунда | $* |
---|---|
Спонсорский** | $900 |
Div 1 + Div 2 | $600 |
Div 2 | $300 |
*Если вознаграждение может быть выплачено в криптовалюте, оно может быть увеличено на 25%.
**Спонсорские раунды выбираются координаторами из числа предложенных заявок.
Заключение
Мы надеемся, что с вашей помощью мы сможем все также радовать вас регулярными раундами из свежих интересных задач! Если у вас остались какие-либо вопросы о том, как стать автором раунда, спрашивайте в комментариях. Обратите внимание, нерелевантные или устаревшие комментарии в этом блоге будут иногда удаляться, чтобы сохранить информацию актуальной.
Unfortunately the current queue proposal is too long (several months, worse for div2 rounds), that's why we decided to make requirements more strict. I hope this will help us to catch up with the queue.
(Not included in the post, because, I hope, this status is temporary.)
Current status:
Hi KAN, can you update the current queue please?
Hi KAN,
Our company is going to open the contest on the Codeforces. What are the steps to sponsor the contest?
Hi KAN, can you update the current status please?
It's still in July 2024 ig, cuz we didn't get a coordinator yet (Published on July 31)
Excuse for my curiosity, but who decides whether the round will be Global? It seems that due to the double amount of remuneration, the authors will never object to the round being Global
Coordinators select which rounds will be Global depending on the problems.
In problem selection which difference actually makes a round global instead of div1+div2? Pardon me if i'm wrong anywhere.
Better quality of problems — higher chance of Global
How to be a Tester on these rounds?
I'll make another post about that.
Uh oh, our secrets will be leaked!
You haven't made any such post yet. I also want to know how to be a tester.
you don’t need a post, you only need five words: become friends with the authors
But when I talked to authors they said that I should talk to coordinators because they choose the testers.
About me, I mostly choose testers randomly from the standings of recent rounds. If you are very active on Codeforces, you have more chances to be chosen.
Okay, thanks!
Write to familiar author contest
On gunpoint, ask your friends to become setter.
What if there are multiple writers? Is the payment divided among them?
Codeforces accepts complete contest only. Coordinator never combines different problems from different people to form a contest.
Whenever you see multiple setters they are friends and they propose contest together. Hence they themself decide the share of individuals involved instead of codeforces team.
This is true in general, but there are exceptions. That's true that we only consider problems proposals as a part of a complete problemset, because it is easier to work with. In case a round has many authors who know each other, they are to split the reward.
However, sometimes we do mix independent authors, for example to fill a gap in another round. Mostly spare problems from previous/upcoming rounds are used for that. In this case we split the reward according to problem level and the amount of work done by each author.
Will there be another section (or possibly a separate blog post) on how to write editorials? It might be beneficial to propose/standardise some rules on the same as I've seen numerous editorials which were really poor, really good and in between (though the quality in general has definitely been improving with time, so it may not be necessary).
At this time I don't see any good way to standardise any rules for writing editorials. This is actually the same with statements: while we have this huge set of rules, they only work if the writer has a feeling of good statements, and just needs some technical guiding. In many rounds it is coordinator/tester who rewrites 50% of statements to make them clear, and even after that they are not always ideal.
There should be some suggested way of providing solutions, with proper explanations and good code style. A linter could be used to make sure solutions are written well. There are many ideas to improve edutorials, and if you are paying money for the problems, solutions should have a high quality too. Many times I struggled to understand the solution and it was easier to solve the problem myself, and sometimes even after that I could not understand what the author meant. And if it is not good, there should be a way to improve it, like testers improve statements.
I have written a blog about some ideas
If there are multiple writers, is it necessary for all of them to be orange or above?
No, at least one of them should be orange or above.
Max rating is orange or orange by the time of proposal?
You must satisfy the requirements at the time you submit the proposal. You will still be able to work with it if you lose your rating though.
If I'm writing some problems but I'm not done with all of them and the contest is not ready to be reviewed, but I lose my rating, will I still be able to make more problems and submit the proposal? I'm worried that if I participate in a Div. 1 Round, I'll lose problem setting privileges.
If the proposal does not have the required quality will you inform the writer or just ignore the proposal?
We will provide feedback for each problem.
I cannot find the propose a contest/problems tab in my personal menu on the right sidebar.
What if I want to make a small contest for my friends in college not more than that ?
Create a mashup
I think that's mostly because of limited resources, but you can always try to team up with other users or accumulate enough problems to make a full contest
I'm curious about whether problemsetters can decide their contest to be a Div1+Div2(Combined) like contest 1774, or a Div1+Div2(Separated) like contests 1753+1754. Or will coordinator give suggestion on this?
what about div-3 and div-4 ?
These (as well as Educational) rounds are prepared by other means (mostly by a fixed set of setters). We don't have an open system for that.
Hi there, I wonder if this is still the case now? Because I've currently seen some of Div.3 and Div.4 rounds are prepared by new authors (for example Codeforces Round 952 (Div. 4) prepared by 2 Americans or Codeforces Round 929 (Div. 3) set by a team from Hong Kong).
Are these authors included in the fixed set of setters also? If not, how can I propose a Div.3 or Div.4 contest?
A recent Div. 3 author had created a contest for their first time, and they are a specialist. Did the rule of just Div. 1 and Div. 2 change? Thanks!
https://codeforces.me/contest/2014
В течении какого времени координаторы рассмотрят задачи?
Пожалуйста, ориентируйтесь на текущую очередь в первой ветке комментариев.
Hi KAN, can you update the current status please?