As you probably know, most of the rounds on Codeforces are created by active community members. We are very grateful to our talented authors from all around the world for bringing their ideas to tens of thousands of competitors, providing fun and learning experience for contestants of every expertise, from beginners to the world's top programmers. This post will cover the steps you need to take propose a round and become a problem writer on Codeforces.
Who can be a problem author
Best problems usually come from the most experienced participants. We have limited resources for rounds reviewing, so to make the process flawless for writers, starting January 1st, 2021, the following requirements for problem authors will be applied:
- rating: 2100 or above, or
- was a writer in the past.
The restrictions may be updated in the future, the post will be updated accordingly. If your round is already in the review status, don't worry, it will be reviewed regardless of the current restrictions.
If you are an experienced writer/jury member in other competitions, please write any current coordinator (listed below) a private message about your wish to prepare a contest and describe your experience in this area.
How to propose a round
If you meet the requirements, you should have the link "propose a contest/problems" in the personal menu on the right sidebar. Click on the link and follow the instructions carefully. Prepare and submit your proposal for a contest and problems.
In some time you will have a coordinator(s) assigned to your contest proposal. They will review your problems and you will discuss the problems with them. Please be active, respond to coordinators' questions in time, make the proposed changes quickly. Codeforces coordinators are very experienced participants and reviewers. Please respect their opinion, and note that they have the highest priority in any decisions on the problems.
Our coordinators are: antontrygubO_o, isaf27, adedalic, Aleks5d, dario2994, errorgorn, irkstepanov, IgorI, darkkcyan, DmitryGrigorev, Artyom123, 74TrAkToR, Arpa, DishonoredRighteous, pashka, and KAN.
You can only propose a whole problemset for a Div 2 or Div 1 + Div 2 round. We don't consider single problems. Also, we don't consider proposals for Div 3/4 or Educational rounds.
How to prepare problems
Problems for Codeforces rounds are prepared in Polygon. It is not recommended to prepare problems before the coordinator's approval, especially if it's the first time you propose a contest.
For each problem you will need to write a clear statement (in English or Russian), code a validator (a program that checks tests' correctness), a checker if necessary (a program that checks output), and of course correct solution. Also, you will need to create tests to check the contestants' solutions on. Your coordinator will do the statement translation if necessary, check your work, and suggests what to change and add if needed.
Before you start working on problems, even if you have experience working with Polygon, you must read these rules. All the work with checkers, validators, interactors, and generators is done with testlib.h library, you can read the introduction by the link and download examples from Polygon. Whenever you have any troubles and/or difficulties, contact your coordinator for help. It is much faster to do something right from the first time, then to do it wrong and then redo it again.
It is interesting and challenging work to invent and prepare problems but is also time-consuming and demanding work. That's why we pay authors for preparing problems for Codeforces. The rewards are:
|Div 1 + Div 2||$600|
*If the reward can be paid in cryptocurrency, it might be increased by 25%.
**Sponsored rounds are selected by coordinators from available proposals.
We hope that with your help we will keep the regular stream of regular rounds full of fresh and interesting problems! If you have any questions on how to become a problem writer, ask in the comments. Please note that unrelated or outdated comments in this blog will be cleared once in a while to keep the blog and comments up-to-date.
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.)
Hi sir, Can you tell us the current status of contest reviews? Thanks in advance.
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!
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.
What about rewards for setting div. 3 rounds?
Div 3 rounds are always prepared by vovuh and MikeMirzayanov
And also by Supermagzzz
Don't forget about Stepavly :)
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?