ACGN's blog

By ACGN, history, 5 weeks ago, In English

As most people know, in yesterday’s round Codeforces Round 852 (Div. 2), problem F coincided with a previous problem on Codeforces. A few months ago, a similar thing happened to Codeforces Round 810 (Div. 1), which also had an issue of coincided problems.

Of course, we know what happened next: Codeforces Round 810 (Div. 1) was unrated for div.1, while as it stands, this round will be rated as per Mike’s latest blog post. I won’t elaborate more on that blog post; I assume you are familiar with Mike’s rationale.

I mulled over that decision for a while, and I’d like to raise a few points.

Full text and comments »

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

By ACGN, history, 7 months ago, In English

Every time after a contest, the Codeforces blog Rule about third-party code is changing is flooded with comments asking for Mike to review submissions, some of which are because of people sharing the same template and are otherwise distinct.

There is a solution that can handle these claims: ask users to submit a template before the contest, possibly as part of the settings, and can come in the form of a CF submission (so they can just input a submission ID). During the contest, they cannot edit the template, and similarities solely because of the template will not be considered when determining plagiarism.

I'm not familiar with how the plagcheck system works, but I'd like to ask for your opinions: is this feasible, and is this a good idea?

Full text and comments »

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

By ACGN, history, 12 months ago, In English

In Codeforces, there are all sorts of intelligent minds: mathematical, algorithmic, and creative minds all come together under one website to create a beautiful platform.

Hold up, there’s still something missing, a gap that, if filled, would make the platform truly marvelous.


Most of the code on this platform is robust and correct. But they aren’t beautiful. #define mp make_pair? What even is "mp"? This is almost sacrilegious.

They don’t add to the literary beauty of this otherwise great platform.

#defines aren’t meant to be used this way. Nor are they meant to encode cryptic text like this submission.

The purpose of #defines are to make Codeforces show its literary beauty, the beauty otherwise obscured by confusing syntax.

This is a beautiful excerpt of Shakespeare. Looking at the actual text is pure eye-candy.

This is what #defines are for. Not to make confusing code even more confusing, but to make beautiful code even more beautiful.

From now on, keep this inner beauty of CP in mind; when solving problems, try to let out your inner literary mind, and quote from the literary giants.

To beauty or not to beauty, that is the question problem.

Full text and comments »

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

By ACGN, 13 months ago, In English


Ah yes, two names that most people on Codeforces have heard -- tourist and rainboy, one known as the CP Legend, and one as the user who does everything reverse. Such a great idea to put them together — a hypothetical user with the same ability as tourist, and solves problems the rainboy way.

For those unaware of the "rainboy way", it means solving the problems in reverse order. In particular, if he cannot solve the final problem, he solves no problems in the contest.

Unfortunately, rainboy had not yet reached red, peaking at 2398 rating. How far can this user go? We shall simulate this user through all the contests that tourist and rainboy took part in comparably, which adds up to 60 contests from Codeforces Round 385 (Div. 2) to Codeforces Global Round 19 over a span of 5 years. Drop a guess before reading the rest?

  • he will be unable to reach red
  • he will peak at GM (2400-2599)
  • he will peak at IGM (2600-2999)
  • he will peak at LGM (3000+)


In the simulation, I used Codeforces Visualizer to get our expected rating changes. Credits to the website.

One important thing to note is that an AK still stays an AK, but even if he solves one less problem, that could mean a score of 0 for our challenger. If he succeeds in AKing, he would almost certainly get a top 10 finish. Supposing that one starts at a rating of 2200, then a 10th place finish would give at least 200+ delta, and a top 3 finish could easily be 300+ delta.

On the other hand, tourist failing to AK a round would almost certainly lead to a 0 score and a huge negative delta. Assuming that one starts with 2400 rating, how negative the delta is depends on the type of round -- from around 100 for div. 1 rounds to 300 for combined and global rounds. In combined and global rounds, it is often difficult to AK, and such a fall would be easily felt.

All journeys must begin with a good username: how about a touring boy? "touringboy" -- no, "turingboy" to make it more programming style :)

With this set, let the journey/simulation begin, and may we wish turingboy high ratings.

First contest: Codeforces Round 385 (Div. 2)

Fortunately, tourist managed to solve problems A to C in the div. 1 version, and in this scenario, he would be able to AK this Div. 2 contest with ease.

However, the next context demonstrates how dangerous failing to solve a single problem is:

In Good Bye 2016, tourist did not manage to solve problem H. Unfortunately, that means turingboy won't be getting any points, and a rating drop of -173 follows.

Then our turingboy AKs, 4 times in a row.

Note: for Codecraft-17 and Codeforces Round 391 (Div. 1 + Div. 2, combined), tourist/turingboy got a FST.

Will he be able to reach the LGM mark? The answer is shown below!

turingboy's rating trends

Did you get it right? What do you think?

It is undeniable that rainboy is a skilled programmer deserving of LGM range. But tourist is simply different, otherworldly.

Did you like this "simulation"? If you did, please support this blog post to continue this series :)

Full text and comments »

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