By PikMike, history, 39 hours ago, translation, In English,

1194A - Remove a Progression

Idea: adedalic

Solution (adedalic)

1194B - Yet Another Crosses Problem

Idea: MikeMirzayanov

Solution (PikMike)

1194C - From S To T

Idea: Roms

Solution (Roms)

1194D - 1-2-K Game

Idea: adedalic

Solution (adedalic)

1194E - Count The Rectangles

Idea: adedalic

Solution (Roms)

1194F - Crossword Expert

Idea: adedalic

Solution (adedalic)

1194G - Another Meme Problem

Idea: Vovuh

Solution (BledDest)

Read more »

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

By rng_58, history, 4 days ago, In English,

We will hold AtCoder Grand Contest 035. This contest counts for GP30 scores.

The point values will be announced later.

We are looking forward to your participation!

UPD: We are very sorry, due to an urgent trouble we delay the round by 30 minutes. UPD2: We fixed the trouble and the round will start from 21:30 JST. Again we are very sorry for the inconvenience.

Read more »

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

By Hepic_Antony_Skarlatos, history, 10 months ago, In English,

Hello people ! Today, I was thinking that I am 22 and still I did not manage to be at division 1 here in codeforces. That made me sad but also gave me a boost to practice harder in the future. Whats your age and how your own journey in competitive is going until now ? I was always wondering, there are people older than 24-25 years old who practice regularly in competitive programming ? Because cp is something fun and I would not like to stop it as I grow up because I learn so many things here.

Read more »

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

By codenationtest, history, 30 hours ago, In English,

Codenation test was conducted on Hackerrank on 15th July. There were 3 questions in the hiring contest.

Q1) Given a NxM (NxM <= 1e5) matrix with each cell having a value mod(Aij) <= 1e9. Job is to rank each element by the following rules:

1) Ranks start from 1.
2) Equal elements in the same row or same column should have the same rank.
3) Greater elements in the same row or same column should have a greater rank.
4) Maximum Rank should be minimized.

Print the final rank matrix.

Q2) N employees are given, you have to divide them into teams of two. If n is odd the last person will form a one man team. Problem is all employees are not compatible with each other. and if both are compatible with each other then only a team can be formed.

Aij ='C' if employee i is compatible with employee j, Aij = 'X' otherwise.
Aii ='C' if employee i can work as one man team, Aii = 'X' otherwise.

find the maximum no of valid teams that can be formed. constraints: T <=20, N<=18.

Q3) Given a Directed graph with N nodes and M edges. each node has a population Ai. you have to open outlets in some or all nodes following the conditions in decreasing priority:

1) Every Node must have access to some outlet either directly or through some path.
2) Maximize the average sales per outlet. sales are linearly proportional to the no of people that visit that 
   location. Average sales per outlet = (sum of all outlet sales)/(total number of outlets)
3) Minimize the number of outlets.

Print how many outlets will you open and in which node. Constraints : T <= 100, N <= 1e3, M <= min( 1e5, N(N-1)), Ai <= 1e3.

Please share your approach on how you solved each of them.

Read more »

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

By lmn0x4F, history, 37 hours ago, In English,

I wanted to finally reach red (after being stuck at orange for some years now) and I asked myself what should I study. I thought I should review one of the most important things I learned, that helped me go from expert to master very quickly, but then I realized I've never seen people referencing that resource here in codeforces, which seems crazy to me.

The main ideas are presented in a paper titled Pessimal Algorithms and Simplexity Analysis by Andrei Broder and Jorge Stolfi, which is available online for free.

I wanted to present this old paper to codeforces, urge you to read it if you haven't (it's just 5 pages long), and, if you have read it, ask you if you have benefited from these very useful techniques and concepts too (I'm sure you have, it's just that I'm perplexed I haven't seen it mentioned here before).

I'm confident that studying again these concepts will make reaching red easy (and make me a better programmer in general)

Read more »

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

By I_love_HellHoleStudios, history, 3 days ago, In English,

Note: This blog is just a joke :)

Hi, Codeforces. I recently found out some interesting things about the famous Russian coder 300iq. I realized that he had a strong relationship between Chinese people while himself was a Russian. Some proof here:

Proof 1 During the recent contest Helvetic Coding Contest 2019 online mirror, 300iq joined the competition with two other users. Interestingly, the other two users in the team are both Chinese IOI team members.

Proof 2 In a recent blog sent by me, I was requesting Chinese OI statements. I was expected to see a Chinese, but 300iq was the first man replied.

Proof 3 Everyone knows the 300iq contest in gym. Among the 5 testers of the contest, 4 are Chinese.

Proof 4 300iq reviewed many Chinese rounds. (For example, recently the round #564 and #573) (But of course he reviewed many Russian rounds as well)


Some ideas from comments(In fact, I don't know which are true, which are false,plz judge it by yourself :P) :

Proof C1 Most (or even all) of 300iq's streams are about solving some problems from Chinese archives. (By V--gLaSsH0ldEr593--V)

Proof C2 In Telegram 300iq's bio is "噢不我怎么又是千年老二"(Oh no,why I am always the second) (By V--gLaSsH0ldEr593--V) .

Proof C3 300iq has also registered a QQ(Chinese communicating app) and joined some chat groups like UOJ(a Chinese online judge) group. (By nocriz)

Proof C4 300iq can play Mahjong. (By ouuan)

Proof C5 300iq joined 2019 Chinese Nantional OI Contest. (By ouuan)

What do you know about this? :P

Read more »

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

By theodor.moroianu, history, 37 hours ago, In English,

The list of IDEs available for the IOI contest has been online for a while now Link.

Sadly, as geniucos pointed out in his blog, Code::Blocks — the only full IDE made for C++ (autocomplete, debug, run and a GUI ok out-of-the-box) is really unstable on Ubuntu, and the IOI tech team offers no support for it.

The only other full IDE compatible with C++ seems to be Eclise, written in and for Java, but a nice C++ IDE, after the necessary add-in are installed (the CDT add-in — C++ Development Tools).

Note that the official webpage clearly states 'Eclipse 4.11 (+ JDT & CDT 9.8)'.

I downloaded the VM for testing the OS we will use, and either I don't know how to activate CDT for Eclipse, either it was not installed, as I was unable to create any C++ project:

This is a screen shoot of the virtual machine with Eclipse offering no option to create a C++ project. I searched in the settings for "C++" keyword but found nothing.

Below a picture of my version of Eclipse with CDT installed:

Is there a secret option I don't know about, is the VM not up-to-date or is the IDEs list just wrong?

For any IOI current/former participant, what IDE do you recommend the most and why?

Read more »

Tags ioi, c++, ide
  • Vote: I like it
  • +21
  • Vote: I do not like it

By farmersrice, history, 27 hours ago, In English,

test blog 1

hope this do not get sent to public cf lol

Read more »

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

By shaanknight, history, 26 hours ago, In English,

I just registered for : Codeforces Round #574 (Div. 2) Interestingly it shows me as a participant out of contest. I comprehend that as one who won't be rated in the contest . I checked the registrants page other purple folks also have an asterisk symbol with their names (out of contest).

So is div 2 not going to be rated for >= 1900 people ?

Read more »

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

By EbTech, 6 days ago, In English,

If you're new to competitive programming, you may be wondering: what are ratings and colors? What do they mean?

As a contestant and now coach of the UBC team, I've taken enough interest in the subject to have developed my own rating system, Elo-R, which I might describe in a future blog post. For now, I want to talk about ratings more generally: what does it mean to achieve a certain rating or title? How concerned should you be with your rating and title? Might it be harmful to be concerned with them at all?

A Brief History of Contest Ratings

Contest rating systems can trace their heritage back to the Elo system. Elo was devised for 2-player games, with rating updates based on whether a player wins, loses or draws. Starting in 1960, it was adopted by the chess community to numerically estimate the skills of players based on whom they won or lost against.

The first major online venue for competitive programming, TopCoder, was founded in 2001. It generalized Elo to allow for matches in which an arbitrary number of players are ranked. Players would see their "handles" (a sort of nickname or username) colored according to rating ranges: 0-899 is grey, 900-1199 green, 1200-1499 blue, 1500-2199 yellow, and 2200+ receive the coveted red color. Players rated 3000+ get an additional white dot inside their red icon, like a bull's-eye, inspiring colloquial usage of the title "target" to refer to these dozen or so top programmers in the world.

The leading competitive programming site in modern times, Codeforces, arrived on the scene in 2010. Its rating system associated not only colors to numerical ranges, but also named titles. In the spirit of peaceful sportsmanship, the old militaristic titles were discarded in favor of chess-style titles in 2011's November Revolution of Colors and Titles, which received further updates in later years.

Rating Statistics

This table summarizes the present-day titles alongside some statistics. The numbers refer to players who've competed on Codeforces in the past 6 months, as of July 12, 2019, rated according to the Elo-R system which I use with the UBC team. Full data and source code are accessible here. Official Codeforces statistics are similar, and accessible here.

Elo-R Range Codeforces Range Title Division Number
2800+ 3000+ Legendary Grandmaster 1 15
2500-2799 2600-2999 International Grandmaster 1 79
2300-2499 2400-2599 Grandmaster 1 170
2150-2299 2300-2399 International Master 1 381
2000-2149 2100-2299 Master 1 1111
1800-1999 1900-2099 Candidate Master 1 or 2 2684
1600-1799 1600-1899 Expert 2 4892
1400-1599 1400-1599 Specialist 2 or 3 7674
1200-1399 N/A Apprentice 2 or 3 10680
1000-1199 1200-1399 Pupil 2 or 3 14005
Up to 999 Up to 1199 Newbie 2 or 3 11901



The start of everyone's journey. At this stage, you might be new to programming. You'll have to become familiar with the control structures and core libraries of your chosen programming language. You might wonder if it makes sense to participate in the competitive programming community at this stage. In my opinion, it's never too early to join!

You might start with sites such as LeetCode which are more oriented toward basic knowledge and professional development, rather than competition and problem solving. Nonetheless, with the introduction of Division 3 rounds, Codeforces is a welcoming environment as well. Some people enjoy learning a programming language by attempting small, self-contained problems.


Now you know how to write working code, and perhaps you've taken your first data structures course. However, you don't often know when to apply standard library data structures, or algorithmic techniques such as dynamic programming.

It bears mentioning that the disciplines of computer science and software engineering are so vast, that it's quite possible to be a successful professional in your specialization while still being a Pupil on Codeforces. Contest skills which you may wish to develop include: algorithmic fundamentals, mathematical problem solving, and speed and precision of implementation. In my Pacific Northwest region, we prepare Division 2 contests (roughly equivalent to Division 3 on Codeforces) to provide a fun and educational experience for novices.


This is a new tier I added. To me, the word "Apprentice" suggests something between a student (aka Pupil) and a professional (aka Specialist). An Apprentice has completed enough basic training to apply their skills in the real world, with some help. With some additional mentorship, they will eventually become a self-sufficient specialist in their trade. At this level, you're comfortable with some basic techniques and looking to further extend your skills.


You've made it! You are applying algorithms and data structures at a professional and competitive level. If your motivation was professional development or job interview preparation, this range might be your ultimate goal. When it comes to algorithmic software engineering interviews, you'll be a strong candidate, even at some of the most prestigious technology companies.


You have algorithmic expertise exceeding that of a typical professional. As such, students and colleagues may refer to you for guidance. In some local circles, you might be considered an algorithms guru of sorts. On the other hand, your ambition may have driven you to surround yourself with even stronger algorithmists! Perhaps you're thinking seriously about competing internationally, at events such as the IOI or the ICPC World Finals. In that case, your journey has only just begun...

Candidate Master

Welcome to Division 1! As a pre-requisite to the esteemed title of Master, you are deemed eligible to prove yourself by competing alongside the best of the best, on the toughest problem sets that Codeforces offers. Professional whiteboard interviews cease to scare or even challenge you; now they're just an opportunity for you to flex over interesting problem discussions.


Congratulations! At this point, Division 2 contests are no longer rated for you, and probably not that interesting to you either. To signify the magnitude of your achievement, there's a sharp transition from the bottom of the rainbow toward the fiery colors at the top. You are a formidable competitor in your region. In most regions of the world, you have a strong chance of advancing to the IOI or the ICPC World Finals.

International Master

Similar to Master, only that you're considered formidable even on the international stage.


The coveted red color comes with considerable respect, even fame, in the competitive programming community. Other competitors, total strangers to you, may recognize your handle and come to you for advice. People aspire to know even a fraction of what you know. Your fast wit is awe-inspiring. You might try to win a medal at the ICPC World Finals.

International Grandmaster

Similar to Grandmaster, only now your fame extends internationally. Your handle is familiar to the entire competitive programming community. A team of IGMs would be slated among the favorites to win ICPC outright.

Legendary Grandmaster

Similar to Grandmaster, only now your fame extends internationally and across time as well. Your achievements are of historic importance to the community, pushing the limits of what's thought to be possible. Colloquially, your color is a variant of red called "nutella": analogous to the "targets" of TopCoder, the white bull's-eye is substituted by a black first letter in the style of the Nutella logo.

This is another title that I once suggested, and was eventually added. We really just needed a shorthand for "programmers who stand a chance against tourist" :P

Concluding Remarks

So, should you be concerned with your rating? I suggest to relax a bit. If you worry too much about losing points on a bad day, you might decide to skip contests on any day in which your mental preparation is less than perfectly optimal. While this may rescue your rating in the short-term, such an attitude will slow your progress in the long-term. The obsession to optimize one's rating can be counter-productive and cause hurt feelings.

Having said that, having your rating on the line can be a good motivator during a contest, simulating some of the pressure of a major event such as an ICPC regional. In addition, now that you understand what the titles mean, ratings are a nice way to track your progress and feel good about the cumulative effect of your training. You've earned it! Just as in long-term stock investment, resist the urge to react to daily fluctuations: focus on the big picture!

Finally, keep track of your motivations, whatever it is that you hope to get out of the experience: be it to prepare for whiteboard interviews, to be exposed to ideas for computer science research, to play a competitive mental sport, to meet other problem solvers, or just to keep your mind active with fresh puzzles. Ratings may correlate with these things, but of course they're not everything. For good or ill, we tend to rank people a lot in our schools and workplaces. At least here, we all know that this is fundamentally a game we're playing, and the criteria and methods for success are well-publicized. Good luck and have fun!

Read more »

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