Please subscribe to the official Codeforces channel in Telegram via the link https://t.me/codeforces_official. ×

nifeshe's blog

By nifeshe, 3 weeks ago, In English

Yesterday some guy posted a blog about accidentally submitting a solution to a problem in the most recent round meaning to do it after the contest ends. He entered a competition, lost 233 rating and then requested to make the contest unrated to him. As it is already clear to probably everyone, he participated from an alt and meant to submit from it, but for some reason logged in from his main.

Screenshot

I quickly found his alt and made a comment. Shortly after that he deleted the blog.

Here is a guide on how to find alts!

Look at the submissions

This method works very frequently. What do people oftenly do after participating in a contest from an alt? They resubmit all the problems from their main. This is how it looks like in the example above:

5 problems were submitted in 1 minute. It means that the guy was either the tester in that round, or participated from an alt. If we know that it is the latter, there is a high probability that we can find his alt already. Go to any problem that he submitted there (prefferably the one with less solves), sort all the submissions on it by the execution time and check all the solutions that have that exact execution time and memory usage. You can also try to only look for the submissions that use his language, but it might not work (as seen below).

Spoiler

If we get lucky, we can find the alt from the first try. In this case we didn't, because his submissions from the alt and the main had different execution times:

We should try again! After 2 more attempts, we find this:

Spoiler

After seeing that, we verify that is it indeed his alt from his name and codestyle. This is how I initially found it.

Search the handle

You would be amazed to know how many alts I found like that. Just look up the handle or any part of it. In this case we find his unrated alt:

Search the handle harder

Since searching handles manually is hard, we can try to do something with code. There are (probably) many clustering algorithms, we can try to use them on the list of handles and check the cluster the handle is in. I have no idea how to do any of that, so I simply asked ChatGPT to make something in Python and it worked. It produced the following after some of my modifications:

generating clusters
saving the clustering to a txt file
getting a cluster of a handle

I don't know (and, frankly, don't care) how this all works, I just tweaked the constants so it produced a reasonable result after running for 1 hour. Here is a download link if someone is interested. Only active users who have the highest rating of at least 1600 are included. As we can see, the cluster my handle is in is: ['nifeshe', 'nifes', 'knifeman', 'iamnifer', 'coniferousdyer'], which indeed contains similar handles to mine.

There are some other ways to find an alt, such as looking through the standings and getting HTML pages of the submissions, but they will rarely work and the 3 methods above are already enough in most cases. Good luck on losing your friends!

Full text and comments »

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