ChaosAngel's blog

By ChaosAngel, history, 5 weeks ago, In English

I think it should be called "Good Riddance 2020", because it has truly been an unprecedentedly ugly year for most of us.

Anyone has a better idea for a name to bid farewell to this year?

Show me in the comments!

Read more »

  • Vote: I like it
  • -25
  • Vote: I do not like it

By ChaosAngel, history, 8 months ago, In English


Codeforces is filled with great people, but it is also has plenty of users that abuse the system, and dampen other people's fun though their actions. A few problems I put under the spotlight


A unrateds, alts, and rating-manipulating contestants that win contests below their division, stealing the victory and some rating from legitimate participants. See the last 4-5 div 2's for sufficient examples of experts and specialists losing wins to these fakes. This can be extended to cheaters in general, but there is already a system for that in place.

B Users who make alts to shield themselves from backlash when commenting, potentially to make hurtful statements. Many of us have seen the abuse that they spew.

I've labeleld things as A and B to refer to the problem I am talking about.

I've done my research:

Past Suggestions:

A Make div 2 have some trusted participant system like div 3 does.

A Construct a neural network that analyzes style (easier said than done)

B Ban unrateds from commenting.

A&B The current MikeModeration, which works to some extent.

My suggestion, inspired by the stackoverflow model, is community based moderation (I'm not sure if this has been brought up before):

My suggested solution:

A We implement a sort of community based flagging. Perhaps, upon noticing a suspicious account, a user with good standing (by either rating or contribution [that would be a good way to put that stat to use] or otherwise), can be able to flag a particular participant. Then the community votes based on whether they think the participant is legitimate or not.

B We can have a similar community moderation system for users who seem to have accounts solely to make abusive comments. (We can tell by looking at their participation, submissions and contest history).

A community system confers many benefits.


-Most community members are honest coders who want to compete, learn, win, and have fun. They will be rather impartial when casting votes, and thorough in detecting cheaters. There are plenty of people who make blogs dedicated to catching cheaters!

-The collective intelligence of hundreds of votes is significantly more intelligent than any automated banning or flagging system, as the watchful eye catches what the bot cannot. Ultimately, it will make illegal actions require too much effort to evade detection.

More specifically:

A Most cheaters tend to be very obvious. We, as users, can rapidly notice them through their handles, or their rating graph (goes from master to newbie), or an unrated finishing a contest in 30 minutes. Bots and systems can be tricked, but users are a bit tougher to hoodwink. If we see a known GM style, we can tell fairly quickly. Yes, I am very aware that there are talented unrateds. I am also very sure that at least 99% (made the number up but we know its correct) of people who participate in their first contest WILL NOT, and STRONGLY WILL NOT solve the entire contest like it is a breeze. False positives will not be plenty (we can always give benefit of the doubt), but the hoards of obvious abusers will be cut down. It will be worth it to give honest div 2 members a true shot at actually winning the division.

B A user can tell what a true account is and what a "made to spout venom" account is. We wouldn't want a systeem to flag Harbour.Space for example, and most rational users would know that this is not an abuse account! Similarly, a user who tries cheating the system by making random submissions for problems to appear like a normal member will be caught by the vigilant eye of the community. In fact, it takes more effort than its worth to hide ill-intent from a watchful community!

So, what do you guys think?

Read more »

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

By ChaosAngel, history, 9 months ago, In English

When my friends first told me that there was going to be a div4 in a few days, I laughed it off and told them to get real. Presto chango, here we have a div 4!

I have mixed feelings about this frankly. Yes, the demand is rising, and we have a massive amount of registrants. However this could be in large part due to the recent pandemic, and not a permanent fixture.

This could have positive effects for the community, in terms of having a lower entrance barrier for newbies and less skilled programmers, and a softer introduction to the world of competitive programming. The website can establish itself as a larger presence in the algorithmic programming world.

At the same time, is that the fundamental character of this site?? Codeforces is known for offering a more ad-hoc, difficult problem set that is more suitable for ICPC, IOI, GCJ, Hackercup participants than your classic job interview website (Leetcode). Expanded focus on the lower divisions might serve to diminish the focus on the higher rounds and participants; it can be argued, allocating problem-setters and system resources differently.

This is not to mention the issue of the rating inflation; I think we are witnessing an upwards pressure on ratings these days due to increased participation by less well-versed members. Perhaps it is time to consider some mechanisms to equalize this??

Yes, we have the opportunity to expand our community and scope by making easier rounds for larger numbers of people. And yes, we risk losing our fundamental reputation as a site that caters to the best of the best.

That, and div1 people barely get any contests anyways.

Thoughts? I'd like to know if there are many with mixed feelings.

Read more »

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

By ChaosAngel, 10 months ago, In English

Hello! In the aftermath of the recent educational round, there is an apparent weakness in the test-cases of problem A that is leading to a ton of hacks.

This large volume of hacks will be added to the systests tomorrow morning. However, they do not represent distinct weaknesses; odds are that only a tiny fraction of these test-cases is necessary, since they are all targeting the same weakness, and most codes will fail at the first hack.

Doesn't this represent an inefficiency that will be an added burden on the already crowded system tests? I don't know how this could be handled, but perhaps live rejudging of all codes on individual successful hack cases will prevent many unnecessary hacks from being created in the first place? This is not exclusive to this contest, and is a persistent issue in div3's and educationals with long hacking phases that could perhaps be improved to save system test resources.


Read more »

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

By ChaosAngel, history, 10 months ago, In English

Hey guys!

I hope you and all your families are well and safe during this outbreak. May the sick be healed and the well stay well.

It is apparent that many of us now have significantly more free time on our hands, at least temporarily, and this is evidenced by the spike in participation to an astonishing 20,000 yesterday. Personally, I am spending more and more time on this website solving problems, and I'm sure many of you are too!

This is why I think it would be an excellent idea if we ramp up activities on this website, and create more fun community things to keep us busy with. (I'm not talking about only more contests, we can be creative in our activities).

I'm a relative newcomer to the site, so I don't know how exactly this could happen, but I certainly have some ideas:

1) The most obvious thing would be to increase the frequency of rated contests immediately, to accommodate for the spike in demand (as of now there are more people registered for the div 3 in two days than several earlier rounds have had total).

2) We can also have unrated, and perhaps even themed contests, which don't have to be as rigorously coordinated. orz to zscoder valentine contest for a beautiful example of that idea in practice.

3) Longer Team based contests (ACM style) , or even day-long long solving marathons.

4) This one's a crazy one that I'm just including it to expand horizons, but a concerted effort to target, by a large number of skilled people (Reds, I'm looking at you) an unsolved CS algorithm?

I would love to hear your ideas; you guys probably have experience with what can and cannot be done as a coding community. I will edit to include the more upvoted ideas, to make them more visible.

We should stay home. Yes, but we should also stay sane.


Read more »

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

By ChaosAngel, history, 12 months ago, In English

I've noticed that after many contests, we get comments accusing the contest of being anything from "mathforces" to "DDOSforces". Some people use these tags to criticize contests that are skewed in one direction or the other.

But is the fact that different contests tend to focus excessively on different areas really a bad thing?

Personally, I think that this is due to the diversity we have in the writing teams and problem creation process. This is something I think we should appreciate! While there definitely is such a thing as a poorly designed, imbalanced contest, I do think that having different contests biased towards different topics to be a good thing. In the long run, since we have so many dedicated, hard-working writers pumping out problems, contests cover a balanced range of skills. Some may be proof heavy, others have more implementation, yet others are about edge cases. While some of us may not like a particular type of these problems/contests (I hate typeforces personally and always get -90 rating on them :p ), in the long run, they are all necessary skills for competitive programmers, and I am happy that I am exposed to various, non-uniform contests that make me harness a skill or the other. The element of surprise is also very welcome; different writer styles ensure different contest styles, and there is nothing more fun than putting old skills to test in new situations.

So, I wrote this blog to honor the different flavors of codeforces. I'm going to mention a few of them (in no particular order, the colors are just for fun)that I've seen being thrown around on problem comment sections, and I invite whoever has additional ones to add them in the comments section.








In the comments section, I invite you all to share your favorite examples of a particular type of contest!

Honorable mention to the dreaded Queueforces and DDOSforces, may they be few and far in between :)

Read more »

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

By ChaosAngel, history, 13 months ago, In English

I would like to draw attention to probably an overlooked, but actually wonderful aspect of this site. Contests here never start on the hour; in fact, they are always 5 minutes afterwards. Practically all of them start at 17:35, but I've never seen a 17:30. Same thing with 16:05 instead of 16!

While for some users this doesn't matter, personally, it makes a difference for me. I usually time myself to arrive on the hour, and this 5 extra minutes acts as a safety net! In fact, it has saved me several times when I came late, because it psychologically forces me to try to be ready 5 minutes before starting.

Finally, if someone, including administration, could tell me why this practice is mainstream here, I'd be very grateful to satiate my curiosity.

I'd like to know if this peculiar starting time habit means anything to anybody else here. But it's impossible not to think of codeforces whenever the clock reads 17:35 :)

Read more »

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

By ChaosAngel, history, 18 months ago, In English

Hello all, First off, allow me to thank those who put in the time to make all contests- from divisions to educationals to globals to mirrors.

Second of all, I've noticed a spike in the participation rate (10K-11K per contest) which is impressive!

However I also notice that the contests are irregularly spaced, and we occasionally wait 5-7 days for contests. This problem is even worse for div 1 participants.

With rising participation and interest, I would like to see an increased frequency and regularity in the contests-perhaps set a target fixed rate of a contest (of any type) every 3-4 days, with additional contests being placed in between.

This has multiple advantages: regularity ensures consistency, which is positively correlated to community engagement. Furthermore, while one can propose doing virtual contests, I will be the first to say they are not the same thing. Nothing matches a live contest with your peers and friends racing alongside you. (especially when rated).

I hope you guys feel the same!

Thanks for taking the time to read this :)

Read more »

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