errorgorn's blog

By errorgorn, 7 weeks ago, In English

Hi again, it is me. I want to preface this blog by saying that I am totally aware that it is not good netiquette to screenshot private messages and publish them publicly. But honestly, I can't care anymore now.

Below is an unorganized rant. Sorry, I'm too pissed to write the things below concisely. And here: I'm pinging him: wuhudsm.

In an ideal world, I could probably just tell him privately to stop doing it. But I already did. So I think I need to write this blog to either stop him from doing this again or just soft-ban him from authoring more rounds by telling everyone about it.

Let me just preface this blog with a fact of coordination -- it is very possible that problems from contest A will be used in contest B even after testers from contest A have seen those problems. So there are indeed (many) testers who could possibly be affected by this. Some examples of this happening (where I was involved):

  • Contest problems based on on-site contests were quite common in the past. A recent example I can think of is 1965F - Conference, where the problem was originally used in Yandex Cup 2023, an entire 6 months ago.
  • Contest A has finished, but the author still has quite a few problems. In that case, I would encourage them to set another contest. Some examples of this are CodeTON Round 7 (Div. 1 + Div. 2, Rated, Prizes!) being a descendant round of Hello 2024 (yes, Hello 2024 came first, long story) and Codeforces Round 934 (Div. 1) being a descendant of think-cell Round 1. In both cases, there do exist testers of the former contest who had seen problems that we plan to use in the newer contest. In particular, the last problems from Hello 2024 and round 934 were originally also the last problems of the two other respective contests. We will tell testers of those rounds that they are forced to test or are forced to ignore the problems they have seen before when participating (of course most people ignore d1Fs anyway). On a side note, there are also cases where a few testers have seen a problem before it is removed from testing, where they do indeed have a chance at solving them. An example is 1943D2 - Counting Is Fun (Hard Version). Unfortunately, sometimes for the sake of making a new contest, we just have to tell them "too bad".

Anyway, the point here is that in both scenarios, we make it super transparent to all parties involved that the problems they have seen before should be kept secret, and we intend to use them in a future round. For example, in Yandex Cup, they made it super clear to all participants that contest problems should be kept secret after the contest has ended. I am totally fine with authors proposing problems for multiple contests, just ensure that you explicitly tell the coordinator about it and the coordinator knows. I believe we wouldn't say "no" just to spite you.

Now, I will go into one of the main points. Coordinating rounds involves reviewing problem ideas proposed by authors and selecting some of them to compose a round. If I deem that a problem does not reach certain standards, I will not approve it to be used in a Codeforces round (the inverse is not true). It is sometimes the case where an author proposes many low-quality problems, resulting in most of the proposals getting rejected and increased workload for both the author and the coordinator. wuhudsm is one of them. He proposed many problems, but he doesn't seem to have much quality control over his problems. There was a period of about a week where he would send one or two problems every day (and clearly they were mostly getting rejected).

Now, what do you do when your problems get rejected by a coordinator?

  • option 1: deal with it
  • option 2 (wtf???): propose it to another publically rated round

Most sensible authors will probably choose option 1. I consider proposing it to local contest, which includes OCPC, is about the same as option 1. In fact, I even encouraged wuhudsm to send his problems to OCPC, and told adamant about inviting wuhudsm to problemset for OCPC.

As a sidenote, I just want to make it clear that OCPC is not a place where you send bad problems. It is just that the problem styles of OCPC and codeforces are wildly different. Just like how IOI and CF are both well-respected for having enjoyable problems, but a good problem for CF may not be a very good problem for IOI and vice versa.

I wouldn't pay $1000 to go to Croatia onsite for OCPC Fall 2024 if I thought it was a joke, right?

The other thing about choosing option 2 is that it further reinforces the idea that you are problem-setting for the sake of it and don't really care about the quality of your problems and the contest. You don't care how your problem is in a contest, just that it appears in a contest; you are just hoping that some coordinator has a taste that accommodates your problem. Now, I want to point out here that if you think that your problem was wrongly rejected, you are free to argue with me. In fact, there are cases in the past where I asked another coordinator for a second opinion (with the author's permission, of course) because I understand that one's taste in problems can be very skewed.

Bad proposals are one thing. What truly enrages me is proposing the same problems to other contests without informing me. It was only recently that I learned that half the problems in wuhudsm's OCPC round were actually problems I had seen before. But oh well, whatever, I think my team is definitely strong enough to get a good ranking without me anyway. I don't really mind sitting out. The problems are actually fine, and OCPC is not a scam.

If this were only a one-off thing, I wouldn't bother to write this blog. Here are more examples of wuhudsm not informing coordinators that a problem he had proposed was already proposed to another contest.

The first sign came back in March 2024, where max-average-path was a problem that was accepted in his proposal that I was coordinating.

Note that his round with Akulyat was actually the recent round 1990. Now, note that the round I was coordinating and round 1990 only had a single author — wuhudsm. I was under the assumption that the round with Akulyat was proposed as a group of authors, so I did not think too much about it. And since this was the first incident, I just gave him the benefit of the doubt.

Then, after the OCPC incident, I was talking with TheScrasse about coordinating stuff, and wuhudsm's name popped up in the conversation. Then I realized wuhudsm has a round with me, Akulyat and TheScrasse all at the same time, which I presume are all set individually. From here, I had an instinct that wuhudsm probably had proposed a lot of problems I had seen to TheScrasse already. So, I asked TheScrasse if I could merge the rounds coordinated by me and him so that he would coordinate both rounds (the set of authors is exactly the same). It was then that TheScrasse said he had already seen half the problems already. This triggered a stupid amount of red flags for me.

Then, yesterday, Codeforces Round 960 (Div. 2) was released. I realized that I had seen problems E and F before. Here is evidence that I have seen them before:

Note that these 2 problems are still marked as "accepted" in the proposal, indicating that they are potential candidate problems to be used in a contest. If they were rejected problems from my contest, I guess I could still close 1 eye about it.

This was written on March 25

This gave a lot of red flags to me. I decided to check with CodeChef about this, and indeed the same thing happened in CodeChef. Thanks to Dominater069 who gave me this evidence.

The only way they got to know that some problem is going to be used is when they tried to use it themselves.

Another problem which CodeChef admin asked if he can use. This ended up being 1936E - Yet Yet Another Permutation Problem.

The same 1936E - Yet Yet Another Permutation Problem problem, but wuhudsm did not mention which contest the problem was going to be used, so it was only by chance that a CodeChef admin had tested the round in question and informed them (just a few days before the round).

Anyways, to the point of this blog is that if anyone wants to let wuhudsm be an author, they should be extremely cautious about it. The fact that this has happened so many times says a lot about it.

Well, to end this blog, I am going to announce my intention to quit coordinating, which I had decided quite a few months ago. I will officially retire after completing the coordination of rounds currently assigned to me (currently 5 div 1 rounds and 1 div 2 round). I joined Codeforces as a coordinator around December 2021 because I enjoyed helping talented authors bring their beautiful problems into a contests for people globally to enjoy. The journey has been amazing and I collaborated with many talented authors from all over the world. I still think fondly of the times where I would be talking nonsense with authors in their testing server or in voice channel.

However, I have probably burnt out a long time ago. Coordinating takes too much of a mental toll on me and I have to force myself to coordinate the remaining rounds. It is time for me to move on to other things in life. Furthermore, I don't think it is fair for me to continue coordination as I definitely would be not be able to maintain the standards of coordination I had in the distant past. I might write more personal thoughts in my own blog when I feel like it.

However, this is not a goodbye to Codeforces and competitive programming (I still have yet to participate in ICPC). I just wish to go back to being a humble competitor of competitive programming.

EDIT

I have asked Akulyat about his side of the story, for 1990E2 - Catch the Mole(Hard Version) and 1990F - Polygonal Segments. He has agreed to be quoted in this blog.

When I asked him about whether he knew wuhudsm had proposed problems in his proposal to other contest, he replied.

No, I didn't know about any of them being proposed to other contests. Seeing the amount of proposed problems I assumed that some of them were proposed to other contests but I thought that rather to those that had passed.

According to him, 1990E2 - Catch the Mole(Hard Version) was proposed on 24th of april, and an array version was proposed earlier. Looking at both timelines, this means that wuhudsm proposed this problems to the coordinators at the same date, most likely before anyone of us responded to it.

Then, 1990F - Polygonal Segments was proposed in Feburary. Where I assume Akulyat did not look at it until the proposal was assigned to him later. Akulyat responded to the problem on 2nd of April. For me, the problem was proposed to me on 23rd March. That means, the same thing happened again. wuhudsm proposed the same problem to 2 different coordinators before any of us responded to it.

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

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

I read your blog and summarized some of the issues you raised about me (if I misunderstood, please correct me):

  • Proposing many low-quality problems, increasing the workload for the coordinator. My skill level is indeed limited. Some high-rated contestants may think that some of my problems are of poor quality, but I was not aware of this. I will remember this lesson and perhaps exit the problem setting for a period of time, waiting until my level rises before returning.

  • Proposing rejected problems to another round. I used to think that due to differences in taste, a problem rejected by one coordinator might not be rejected by another. Now, it is clear that my mistake was not fully communicating with the previous coordinator (errorgorn). In any case, I believe that "bad problems" will not appear in any round, as I trust the coordinators to recognize and correct my mistakes.

  • It was only recently that I learned that half the problems in wuhudsm's OCPC round were actually problems I had seen before. As you mentioned in the first image, "just send all these rejected problems...", that is what I did. After coordination by another coordinator, some of the problems were accepted. Perhaps I misunderstood your meaning? Pls correct me.

Overall, thank you for your criticism. I will temporarily exit problem setting to improve my skill level and strive to propose high-quality problems. For each problem I propose, I will ensure not to submit it to multiple rounds before its status is confirmed, to avoid increasing the coordinators' workload. If anyone has any criticisms or suggestions, please feel free to let me know.

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

    "Proposing rejected problems to another round."

    But they were not just rejected problems, some of them were even accepted.

    The biggest issue is the lack of communication of when a problem we have seen is going to used in some round.

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

    "just send all these rejected problems..."

    He specifically mentioned OCPC and not other CF contests, and went on to talk about OCPC logistics specifically. In any case, he also asked you to tell him if you do send those problems.

    Please do not ignore things selectively, especially when things are as confidential as problems being considered for rated contests.

    And there is more evidence (max-average-path) of this being done before he gave this advice to you. So clearly you were proposing problems to multiple contests before that advice. Quite disingenuous of you to silently shift the blame onto him.

    I have coordinated a couple of local contests where such issues happened too, and it was very clearly a breach of mutual trust. But that is nowhere near the violation of trust that seemed to happen here — problems being leaked for rated, public contests.

    One thing I think people should take away is that coordinators can also be participants in each others' rounds, if they do not know any problems. No two coordinators will discuss an author's problems unless they are authorized to do so. The only people involved in your contest are you, your co-authors, the coordinator(s) assigned to you, and your testers. Coordinators do not have a secret group chat where they discuss all your problems over a round-table and decide whether a problem goes in the round or not. And I think you are aware of this, since you submitted problems rejected for one round, to a coordinator for another round.

    Please do better.

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

      What I mean is not that I shirk responsibility, it was my mistake. Thank you for your criticism.

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

    Points 1 and 3 are not really big issues.

    The main issue is point 2. The point is that you proposed problems that were accepted by 2 different coordinators, am I not wrong? You are giving 2 different parties the impression that a problem can be potentially used in their contest. It's wrong to write in bold Proposing rejected problems to another round since you are Proposing accepted problems to another round

    If I am not wrong, I told you I wanted to use 1990F, but you just asked me to use another problem and completely did not tell me that you (presumably) had already given 1990F to another round, instead insisting very hard to use another 2F. This cannot be justified by "I used to think that due to differences in taste, a problem rejected by one coordinator might not be rejected by another", you just didn't want to admit that you knowingly proposed the same problem to 2 coordinators. Even going so far as to create 2 seperate proposals $$$^\dagger$$$! Am I wrong about any of this?

    $$$^\dagger$$$ For reference, to people who might not be familiar with how cf proposals work, authors upload problems as proposals, which get tagged onto contest. It is possible for proposals to be moved to different contest but the comments from earlier coordinators will still remain. For example, in the problem 1889F - Doremy's Average Tree, it was originally proposed to me for Codeforces Global Round 24, then they wanted to use it in a round coordinated by a different coordinator. Of course, they notified me about it. But even if they didn't they used the same proposal so that the coordinator of the new round knows that it has been seen by me before, since my comments are there

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

      Yes, I understand your point. I believe the key point is that I mistakenly thought I had the authority to manage my problems at will, but in fact, this is incorrect. I want to make amends as much as possible, such as not collecting CF round problem bonuses and compensating them to some coordinators (as they have put in extra effort). Fully communicate with the coordinators. Temporarily withdraw from setting problems. Please let me know if there is anything else I can do.

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

    Am I reading a f////// GPT-generated answer or something?

»
7 weeks ago, # |
  Vote: I like it +281 Vote: I do not like it

I can confirm that I had a lot of issues with wuhudsm during my time as CodeChef Head Admin. One of those issues, which was not the focus here although you can see it in screenshots regarding problem proposals and errorgorn's first comments to them: wuhudsm seem to think that vague idea of what the problem might be about, without limitations or intended solution is already a good enough thing to propose. I guess the idea is that the coordinators will figure out what to do next with this half-baked idea, maybe they will come up with an interesting solution or mend the idea into actually being a problem one can solve and therefore wuhudsm can use in a contest as author.

I understand that coming up with problems is not an exact science and one of the valid methods is to throw shit against the wall and see what sticks, then mend and form it to make a problem. The issue is that the person doing the mending should be yourself, or maybe your collaborators. Not the coordinator. It is not the coordinator's job to actually come up with a problem for you. Yes, sometimes they do this and you should be grateful, but you shouldn't make it the norm.

There was (or maybe still is, I'm too old to remember) a trend when authors posted how many problems were rejected to make their round. And it was supposed to be "the higher that number is — the better". I don't understand the logic here. The only thing a high number proves is that your internal bar for "the problem I'm not ashamed to show the coordinator" is waaaay too low. wuhudsm decided to go even further and send "not a problem"s to coordinators (plural). I guess it kinda makes sense to send it to several coordinators at the same time because it increases the probability that one of them will come up with an actual problem while looking at the shit you sent.

I was very surprised when I saw that wuhudsm is setting CF rounds, while also maintaining "The Forces" community whatever the fuck that is and people seem to like his problems and be thankful for his contribution. I thought "maybe he got better" but I guess he just doubled down on his shitty behaviour and found targets that are kinder than me (not a dig at current CF/CC coordinators, nothing wrong with being nice to potential problemsetters).

I'm really glad that errorgorn was brave enough to publicly talk about this situation. I think we would all benefit from having better insight into coordinators' work. It is not an easy side gig, and a good coordinator is the thing that separates good rounds from bad.

»
7 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

why am i unable to see these images? is it same for everyone?

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

    I've now hosted the images on cf instead of hackmd, does that fix it for you?

»
7 weeks ago, # |
  Vote: I like it -47 Vote: I do not like it

so, will the contest stay rated? Or will be unrated?

»
7 weeks ago, # |
  Vote: I like it +89 Vote: I do not like it

After went through the post and the comments(including the explanation wuhudsm wrote). My summary is that wuhudsm had a wrong understanding about that coordinator has the authority to compose the problems into a contest instead of the writer himself. I think errorgorn was right to point this out and now making wuhudsm on the same page. This reduces the chaos in the future.

Actually I'd also like to point out that wuhudsm did a great job on creating interesting problems on many platforms. I've partipated Codeforces, Codechef, TheForces rounds authored by him. I've also been a tester of his round like 960. I want to say that a productive writer like him is making the community better and better.

As long as they are on the page, I would suggest we give wuhudsm more chance to grow and improve instead of criticize on the mistakes.

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

    How does he think he doesnt even need to inform people when problems are being used?

    I was literally going to take part in a rated round without knowing i have already seen div1E. Why? wuhudsm sends problems to so many people that he forgets who he sent to when using it in some contest

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

      I agree with you that these behaviors are not professional and need to be fixed.

      But we had to see that these behaviors are not initiated from evil purposes (IMO evil purposes here are something like cheat to get high rated or screw up a contest). I believe that he wants the community to be better.

      Just give him some time to grow up and to be more professional.

»
6 weeks ago, # |
  Vote: I like it +30 Vote: I do not like it

As a multiple time contributor of TheForces, I notice that I also faced the same situation with 1936E.
Saw this post and reviewing some testing contests and DMs with him, I notice that I have seen the problem(luckily, in there $$$n \le 6000$$$ and during actual contest I can't reach problem D1E), but I wasn't said to stop to participate the round officially.

I like his problem and want to help the community, but according to current things around the community, I shouldn't too trust random people. Shame on me...

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

    Which kind of raises the question of whether wuhudsm was the one who came up with a faster solution which made the problem suitable for div1E.

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

      I traveled DMs again, and I found him and I discussed about the faster problems in October 2023.
      We discussed about a subproblem of it, and I thought the problems was used for TheForces round or some round I shoud test or don't participate.
      Actually the problem was used in official Div1 round.(I confirmed with him I can participate officially, but the problem appeared. I don't sure whether it was an accident caused by forgetting discussion with me...)

»
6 weeks ago, # |
  Vote: I like it -59 Vote: I do not like it

Why are you bullying my friend?

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

    Spreading awareness about shitty behaviour is not bullying.