KAN's blog

By KAN, 4 years ago, In English

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: Aleks5d, errorgorn, irkstepanov, IgorI, Artyom123, 74TrAkToR, ScarletS, Akulyat, TheScrasse, 244mhq, satyam343, Vladithur, 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.

Writers reward

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:

Round Type $*
Sponsored** $900
Div 1 + Div 2 $600
Div 2 $300

*If the reward can be paid in cryptocurrency, it might be increased by 25%.

**Sponsored rounds are selected by coordinators from available proposals.

Conclusions

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.

  • Vote: I like it
  • +932
  • Vote: I do not like it

| Write comment?
»
4 years ago, # |
  Vote: I like it +177 Vote: I do not like it

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.)

  • »
    »
    20 months ago, # ^ |
      Vote: I like it +77 Vote: I do not like it

    Current status:

    • Div 1 queue is empty. I can't say that I keep up with 2 week deadline, but I try my best.
    • Div 2 queue is May 2022.
  • »
    »
    5 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Current status:

    • Div 1 queue is at middle July 2023.
    • Div 2 queue is at May 2023.
    • »
      »
      »
      4 months ago, # ^ |
        Vote: I like it +19 Vote: I do not like it

      Hey, what's the current status? It'd be nice if you can update it once a month.

  • »
    »
    4 months ago, # ^ |
      Vote: I like it +69 Vote: I do not like it

    Current status:

    • Div 1 queue is at August 2023
    • Div 2 queue is at October 2023
    • »
      »
      »
      2 months ago, # ^ |
        Vote: I like it +11 Vote: I do not like it

      Hello, can You please tell the current staus of the queue?

    • »
      »
      »
      2 months ago, # ^ |
        Vote: I like it +5 Vote: I do not like it

      Why the queue of Div1 still so long? I created a proposal 3.5 months ago and haven't been assigned a coordinator :(

    • »
      »
      »
      7 weeks ago, # ^ |
      Rev. 2   Vote: I like it +38 Vote: I do not like it

      Our div1 proposal(1635) was submitted in August 2023, but hasn’t got reviewed yet. I’m just wondering why. We’ve already waited for eight months!

      • »
        »
        »
        »
        4 weeks ago, # ^ |
          Vote: I like it +33 Vote: I do not like it

        I've just taken proposal 1630.

        • »
          »
          »
          »
          »
          4 weeks ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          Do you only take those proposals which have high quality problems? and are all the low quality proposals taken by 74traktor

          • »
            »
            »
            »
            »
            »
            4 weeks ago, # ^ |
              Vote: I like it +45 Vote: I do not like it

            KAN takes a quick look to the proposals before sending them to the coordinators, to ensure they look "good enough". [In particular, if the proposal has no written solutions, it's more likely that the round will be skipped.]

            About the problem quality: if a problem is bad according to testers, even if I accepted it before testing, I can change my mind (it happened to me twice). If a contest has 30 testers and they don't think a problem is bad, most likely the average participant will not think the problem is bad.

            For example, I would have accepted 1916D - Mathematical Problem before testing. My thought process:

            • Oh, the statement looks so random. Usually, it means there must be some construction which is easier than the statement.
            • I have not found anything in 1-2 minutes. Then I'm just going to write a brute force.
            • Ok, there actually is an easy pattern.

            So I didn't think the problem was bad. I just thought is was easier than usual, maybe div2C level, because it looked obvious for me that I had to write a brute force.

            Then, most likely, out of the first 10 testers, at least 3 would have hated this problem, and we would have replaced it. Probably, before Good Bye 2023 there was not enough time to replace the problems, so it ended up being used anyway.

            The "easy" solution is just to avoid scheduling a round if there is a major issue which cannot be fixed easily (e.g., a problem which is hated by most testers and has no replacements).

            • »
              »
              »
              »
              »
              »
              »
              3 weeks ago, # ^ |
                Vote: I like it 0 Vote: I do not like it

              How do you not find a problem where the only solution you got is bruteforcing a pattern bad? Very surprising to me

              • »
                »
                »
                »
                »
                »
                »
                »
                3 weeks ago, # ^ |
                Rev. 2   Vote: I like it 0 Vote: I do not like it

                Writing the brute force is trivial. I think the hardest part is finding out which solution for $$$n = 5$$$ or $$$n = 7$$$ can be generalized to all $$$n$$$ (iirc there are a lot of solutions which cannot be generalized). So it's a bit different from a problem where you write a brute force and notice that the answer is $$$2^n$$$.

            • »
              »
              »
              »
              »
              »
              »
              10 days ago, # ^ |
                Vote: I like it +26 Vote: I do not like it

              Well, how will I know whether a round is rejected or not?

            • »
              »
              »
              »
              »
              »
              »
              4 days ago, # ^ |
                Vote: I like it 0 Vote: I do not like it

              Btw, (quote from Daniel_lele)

              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 the coordinator give suggestions on this?

              • »
                »
                »
                »
                »
                »
                »
                »
                4 days ago, # ^ |
                  Vote: I like it 0 Vote: I do not like it

                If a round is sponsored, it's automatically combined (otherwise, it's usually separated).

                For now, the main problem about Div. 1 is the lack of coordinators, not the lack of good proposals. So most of the proposals we review are good enough to be sponsored. But sometimes no sponsor is available, so it all depends on the sponsors' availability.

        • »
          »
          »
          »
          »
          11 days ago, # ^ |
            Vote: I like it +38 Vote: I do not like it

          What's the order of taking proposals? By the ID or by the publishment time? For example, if two proposals:

          • A: #2023, published on 2024/6/10;
          • B: #2024, published on 2024/5/10;

          Which will be reviewed earlier?

          • »
            »
            »
            »
            »
            »
            10 days ago, # ^ |
              Vote: I like it +8 Vote: I do not like it

            I don't know exactly, I just ask KAN for a proposal and I receive it. Anyway I've reviewed #1582 before #1530, so I think the publishing date matters.

            • »
              »
              »
              »
              »
              »
              »
              10 days ago, # ^ |
                Vote: I like it 0 Vote: I do not like it

              oh so these numbers are random? I thought 1582 means it's 1582th proposal. How come you took it before 1530? Or was it caused by the contests being of different type like div1 and div2?

              • »
                »
                »
                »
                »
                »
                »
                »
                10 days ago, # ^ |
                  Vote: I like it 0 Vote: I do not like it

                Maybe it's because #1582 was started later but published earlier than #1530. Anyway I don't know the details, it's not me who selects the proposals.

    • »
      »
      »
      4 weeks ago, # ^ |
        Vote: I like it +4 Vote: I do not like it

      Hi KAN, update on current status please ..

»
4 years ago, # |
  Vote: I like it +17 Vote: I do not like it

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

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +43 Vote: I do not like it

    Coordinators select which rounds will be Global depending on the problems.

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      In problem selection which difference actually makes a round global instead of div1+div2? Pardon me if i'm wrong anywhere.

»
4 years ago, # |
  Vote: I like it +39 Vote: I do not like it

How to be a Tester on these rounds?

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +116 Vote: I do not like it

    I'll make another post about that.

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it +91 Vote: I do not like it

      Uh oh, our secrets will be leaked!

    • »
      »
      »
      3 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      You haven't made any such post yet. I also want to know how to be a tester.

      • »
        »
        »
        »
        3 weeks ago, # ^ |
          Vote: I like it +8 Vote: I do not like it

        you don’t need a post, you only need five words: become friends with the authors

        • »
          »
          »
          »
          »
          3 weeks ago, # ^ |
            Vote: I like it -10 Vote: I do not like it

          But when I talked to authors they said that I should talk to coordinators because they choose the testers.

          • »
            »
            »
            »
            »
            »
            2 weeks ago, # ^ |
              Vote: I like it +10 Vote: I do not like it

            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.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    Write to familiar author contest

  • »
    »
    4 years ago, # ^ |
    Rev. 2   Vote: I like it +68 Vote: I do not like it

    On gunpoint, ask your friends to become setter.

»
4 years ago, # |
  Vote: I like it +10 Vote: I do not like it

What if there are multiple writers? Is the payment divided among them?

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it +38 Vote: I do not like it

      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.

»
4 years ago, # |
Rev. 2   Vote: I like it +33 Vote: I do not like it

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).

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +16 Vote: I do not like it

    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.

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it +4 Vote: I do not like it

      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

»
4 years ago, # |
  Vote: I like it +37 Vote: I do not like it

If there are multiple writers, is it necessary for all of them to be orange or above?

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +30 Vote: I do not like it

    No, at least one of them should be orange or above.

»
4 years ago, # |
  Vote: I like it +47 Vote: I do not like it

Max rating is orange or orange by the time of proposal?

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

    • »
      »
      »
      3 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      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.

»
4 years ago, # |
  Vote: I like it +48 Vote: I do not like it

If the proposal does not have the required quality will you inform the writer or just ignore the proposal?

  • »
    »
    3 years ago, # ^ |
      Vote: I like it +39 Vote: I do not like it

    We will provide feedback for each problem.

    • »
      »
      »
      3 years ago, # ^ |
        Vote: I like it +7 Vote: I do not like it

      I cannot find the propose a contest/problems tab in my personal menu on the right sidebar.

    • »
      »
      »
      19 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      What if I want to make a small contest for my friends in college not more than that ?

»
2 years ago, # |
  Vote: I like it 0 Vote: I do not like it

We don't consider single problems. I think that should be reconsidered. I would like to contribute.

  • »
    »
    2 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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

»
17 months ago, # |
  Vote: I like it +13 Vote: I do not like it

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?

»
4 months ago, # |
  Vote: I like it 0 Vote: I do not like it

what about div-3 and div-4 ?

  • »
    »
    4 months ago, # ^ |
      Vote: I like it +25 Vote: I do not like it

    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.