maspy's blog

By maspy, history, 62 minutes ago, In English

Recently, I have often found myself somewhat concerned about the quality of problem statements on Codeforces.

Of course, this may simply be due to some bias: perhaps I just happened to notice more such cases over the past few months. I also fully understand that writing and reviewing problem statements is a very difficult task. Even so, I feel that there is still room for improvement in several respects.

In particular, I would appreciate it if more attention could be paid to the following points:

  • Finding and fixing typos before the contest, paying attention not only to the statement body but also to the input and sample sections.
  • Using the same expression as consistently as possible when referring to the same object or concept.
  • Avoiding undefined, problem-specific terminology as much as possible.
  • Checking whether technical terms are being used in a meaning different from their usual one.
  • Paying attention to potentially ambiguous expressions and arranging explanations in an order that is less likely to cause misreadings.

Of course, I am well aware that it is difficult to pay close attention to every detail, iterate many times, and produce a perfect problem statement.

On the other hand, in recent years, AI has become quite capable of helping with this kind of proofreading. My impression is that Codeforces problem statements still contain a non-negligible number of mistakes that could probably be improved by even a simple AI-based proofreading pass. That said, AI outputs can be unstable, so it is also possible that the writers have already been making such efforts, but the AI simply happened not to work well in those cases.

When AI is discussed in the competitive programming community, the topic is often about cheating, which I personally find rather exhausting. However, I do not see as much discussion about the positive use of AI in contest preparation, including proofreading problem statements. I believe such use should be encouraged more actively.

If AI is not yet widely used in Codeforces contest preparation, I would be grateful if people could start by trying to use it for proofreading problem statements from the kinds of perspectives listed above.


Below are some examples that I can recall immediately.

These are only cases that personally bothered me. Some people may consider them to be within an acceptable range.

2232D - Magical Tiered Cake The term "layer size" is not defined.

2232E - Snaking Arrangement The term "path size" is not defined. It may be standard in graph theory that "path size" refers to the number of vertices even without an explicit note, but I have not often seen the term used that way.

2231E - Graph Cutting A term is used in an unnatural meaning. https://mirror.codeforces.com/blog/entry/153824?#comment-1366359

2230A - Optimal Purchase There was a typo in the input section. a, b, c / n, a, b

2225E - Covering Points with Circles There was a typo in the input section. x, y / p_x, p_y

2219B2 - Unique Values (Hard version) The constraint in the Hack section of B2 was incorrect. 2000 / 1000

In addition, by looking at the announcements for various contests, one can find several instances where minor typos were corrected after the contest had already started.

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