How would you compare the difficulty of the IOI with Google Code Jam?

Updated on : December 6, 2021 by Gabriel Sims



How would you compare the difficulty of the IOI with Google Code Jam?

I would say that Google Code Jam is tougher than IOI. If you look at IOI 2016 and Google Code Jam 2016, you will see that the IOI 2016 winner (jcvb) was 21/23 on Google Code Jam, the IOI is a competition for high school students, but Google Code Jam has no age limit. . So I hope it answers your question. The results are below

Results IOI 2016 IOI 2016: Results

GCJ 2016 Results Scoreboard - 2016 World Finals - Google Code Jam

To prepare for Google's Code Jam, you must first understand the entire structure of Code Jam. So, I will answer your question regarding each round.

Qualifying round

This is the easiest round in code jam from what I can see from last year's questions. The problems in this round are used to check whether the participant has basic problem-solving skills or not. The minimum limit required to pass this round is 30 points in the 2020 jam code. The difficulty of the questions in this round is similar to the Div 2 ABC code forces and you can easily solve these problems with some effort, even if

Keep reading

To prepare for Google's Code Jam, you must first understand the entire structure of Code Jam. So, I will answer your question regarding each round.

Qualifying round

This is the easiest round in code jam from what I can see from last year's questions. The problems in this round are used to check whether the participant has basic problem-solving skills or not. The minimum limit required to pass this round is 30 points in the 2020 jam code. The difficulty of the questions in this round is similar to the Div 2 ABC code forces and you can easily solve these problems with some effort, even if it is just a beginner. This round will be 27 hours this year.

Round 1a, 1b and 1c

This is where the real competition begins. You will only get 2:30 hours and there will be 3 problems that will be much more difficult than the ones in the qualifying round. From each round, the top 1500 finishers will qualify for the next round. Note that you cannot participate in 1b or 1c if you were in the top 1500 in 1a. You need to have some speed and a good command of DSA to be able to solve all the problems. But to qualify, even solving 2 problems or 1.5 problems quickly is enough for most of the time. Practice codeforce Div 2 CD and some E problems to get a good idea of ​​the problems you are going to face. Also solve codejam questions from the previous year.

Round 2

Now only 4500 participants remain. This time the problems will be really difficult. You can expect this round to be similar to Codeforces Div 1. Don't forget the world's top 1000 encoders are also participating (like the guys from Div 1 on codeforces, 7 stars on codechef). So you must have a lot of speed and problem solving skills. I will advise you to enter the Codeforces Div 1 contest as much as possible. Practice as much as you can and review your DSA concepts. Only the top 1000 players will advance to the next round.

Round 3

You don't need any advice if you've come this far. I'll just say practice, practice, and practice because only the top 25 will advance to the next round.

Final round on site

You will be in the same room as the tourist himself. So you know who you are, what you are doing and why you are doing it. I just wish you the best of luck.

Summary :-

Practice, practice and practice!

Keep increasing the difficulty of the problems you solve

Good luck guys and see you at Code Jam 2020.

(This could be a late answer, from Round 1A 2015 - Google Code Jam just ended a few hours ago.)

The short answer is that it is a fun contest that you should join, and the problems in the qualifying round wouldn't be too difficult for programmers with some general problem-solving skills. If your goal is to advance to Round 1, you probably need some competitive programming experience, which you already had. If you are still unsure, you can refer to Issue A this year and read the contest analysis if necessary.


First, let's talk about the contest rule. Each round of Google Code Jam usually has

Keep reading

(This could be a late answer, from Round 1A 2015 - Google Code Jam just ended a few hours ago.)

The short answer is that it is a fun contest that you should join, and the problems in the qualifying round wouldn't be too difficult for programmers with some general problem-solving skills. If your goal is to advance to Round 1, you probably need some competitive programming experience, which you already had. If you are still unsure, you can refer to Issue A this year and read the contest analysis if necessary.


First, let's talk about the contest rule. Each round of Google Code Jam generally consists of 3 to 5 problems, each often consisting of two parts: a small entry part and a large entry part. The score assigned to each part of each problem is roughly proportional to the respective difficulty. As a contestant, your goal is to maximize your score and solve problems as quickly as possible 1.

For the qualifying round, the problems are quite accessible to general programmers. For the easier problem, it is often quite easy to solve the small input part (usually the large input can be solved with the same algorithm) if you know how to code and are determined enough to give it some thought. Advancing to Round 1 would be a bit more difficult, but should still be doable if you have some general problem-solving skills and algorithmic knowledge, and ideally some competitive programming experience 2; which is true in your case, as you mentioned in the question details, that you can already solve Div 2 problems in Codeforces.

The qualifying round is also not stressful to participate in. It will usually last longer than 24 hours, so people in different time zones with different times will have plenty of time to think about the problems (at least the easiest ones) and try some of them. . Here's the schedule for this year, and you can see that you have 27 hours to get enough score to advance to Round 1 (which will be more competitive and exciting):


Another thing is that the problems are usually interesting enough even for experts. For this year (2015), Problem D is pretty tricky (only 686, out of 23,296 non-zero score contestants, completely solved it), however the solution is incredibly short once you figure out the trick.


Even the best participants "still" would need to spend more than 1 hour solving all the problems. Here's a screenshot of the final scoreboard (Link: Scoreboard - Qualifying Round 2015 - Google Code Jam):


Actually, it can be argued that this round is not very competitive in nature given its long duration, so people just didn't bother to do their best to solve problems in the shortest amount of time. 3 Here are the top 5 coders using the most programming languages ​​in their accepted solutions as of Round 1A in 2015, probably because they find it too boring to solve all these problems in the usual way.


So ... are you now convinced that it is worth trying to enter this contest? Maybe at least for the qualifying round?

If you're still in doubt, you can always practice and learn using problems from previous quizzes, and check out the very comprehensive quiz review if you have any of these issues.


Finally, as a bonus, it is possible to solve a problem without writing any code ...

According to the Terms and Conditions, Microsoft Excel is allowed:

(2) Programming language, editor and compiler. For the Code Jam qualification round, you can use any programming language to solve a Code Jam problem, using any development environment or text editor. For any Code Jam round after the qualification round, the compiler or interpreter you use must be available so that anyone else can use it for free with no time limit and without violating any rights of any person or entity. However, the following are allowed:

  1. (a) Visual Studio, Microsoft Excel, and MATLAB;
  2. (b) compilers and interpreters that require Microsoft Windows or Mac OS X, provided that the compiler or interpreter itself is free, as described in this Subsection (2); and
  3. (c) any other exceptions that Google may communicate to you by email on the Contest website.


In fact, eduardische has a blog post on Codeforces (Solving Code Jam Qualification Round. In Excel. - Codeforces) that details how he solved each problem in the 2015 Qualification Round entirely with Excel alone. Note that you were not using the VBA programming language because you thought that way would be too boring. Instead, your solution was entirely based on writing formulas (like ROW, MEDIA ...) in individual cells in a worksheet.


1: If multiple people score the same, the tiebreaker rule is that the one with the earliest latest submission will be ranked higher. However, there is a 4 minute "time penalty" for each incorrect presentation. See section "4. Evaluation and scoring" in the Terms and Conditions for more details.
2: The minimum point to advance to Round 1 this year is 20. The easiest way to achieve this is probably by solving A-small + A-large + B-small (7 + 8 + 11), or B- small + C-small (9 + 11).
3: For example, many people managed to solve all 3 problems well in one hour in Round 1 this year: Scoreboard - Round 1A 2015 - Google Code Jam.

They are different in many ways. And your question is not entirely clear to me anyway :) What do you mean by "Red on TopCoder"? Hit red for at least one round or be constantly red? Likewise, I'm not sure about the "top500" part of the question.

For me as a contestant, I feel like just getting to the red should be a bit more difficult than getting to the top500 at GCJ, and being in steady red is almost definitely more difficult (but not much more difficult).

I disagree with Raymond Deng's calculations: the overall level of contestants on Google Code Jam is lower than the level of contestants on

Keep reading

They are different in many ways. And your question is not entirely clear to me anyway :) What do you mean by "Red on TopCoder"? Hit red for at least one round or be constantly red? Likewise, I'm not sure about the "top500" part of the question.

For me as a contestant, I feel like just getting to the red should be a bit more difficult than getting to the top500 at GCJ, and being in steady red is almost definitely more difficult (but not much more difficult).

I disagree with Raymond Deng's calculations: the overall level of contestants on Google Code Jam is lower than the level of contestants on TopCoder, so there is no point in counting the% of people in top500 / with red color and comparing this values ​​. At TopCoder, a high percentage of entrants enter contests on a more or less regular basis, while for GCJ most people are trying it out because it's a cool coding competition and there's even a chance to get a job at Google, a a lot of these people don't even have competitive programming experience. When I attend the first stage of the ICPC and compete against 200 teams there, reaching the top 5 means 2.5%; Nevertheless, Do you think it's really that difficult when among these 200 teams only 20-30 people have CodeForces / TopCoder accounts? and half of the contestants don't even know the ICPC rules? Registering my grandmother as a contestant will not make reaching the top spots harder for other contestants :)

Here's one area where GCJ is more difficult: You only have one attempt per year. At TopCoder, once you have reached a decent level close to red, you will have several attempts each month; some of them could be your lucky chance. In some rounds you will face problems that are not good for you, sometimes it just won't be your day, but one day you will be lucky enough to do your best and get +100 or +150 and turn red. In GCJ2016 Round2 Igor Pyshkin, ACM ICPC World Finals Champion, got # 511. That happens. A person with a rating of 3000 can get -150 after a bad TopCoder round and will remain red; but in GCJ to be 1000th means ... 1000th place, and no matter how strong / cool / amazing / skilled you really are,

Google is not going to hire you for your performance in competitions.

Even if you perform really well, you will have to go through an interview and will be hired for your performance during interviews, not your performance at GCJ.

It is true that you can get an interview call if you do well at GCJ. I don't know all the details about Google's hiring process, and for the details, I know I'm not going to share them externally for obvious reasons, so don't wait "as long as you are among the 5.8438% of the participants, you will definitely receive a call ”kind of answer :). As you can see in Nick Wu's a

Keep reading

Google is not going to hire you for your performance in competitions.

Even if you perform really well, you will have to go through an interview and will be hired for your performance during interviews, not your performance at GCJ.

It is true that you can get an interview call if you do well at GCJ. I don't know all the details about Google's hiring process, and for the details, I know I'm not going to share them externally for obvious reasons, so don't wait "as long as you are among the 5.8438% of the participants, you will definitely receive a so-called ”kind of response :). As you can see from Nick Wu's answer to Google interviewing Code Jam finalists (ie those who made it to the final round on the site) for job opportunities, given who are talented enough to advance to the last round - the on-site round should be enough.In fact, even much weaker returns greatly increase their appeal to recruiters;

It is also true that acting alone can be enough to get interviews. Google hired me as a competitive programmer with zero industry experience, zero open source contribution, and mediocre ratings from a not-so-famous university. I know other Google employees with similar stories. You need something to attract recruiters; In general, as long as your "something" is impressive enough, you don't need anything else. Not having any project on your CV is not a problem.

In case you like to enter contests and also want to get noticed by Google recruiters, it makes sense to participate in as many different Google events as possible. Maybe Google Kick Start, Google Hash Code or some different event will give you the opportunity you are looking for.

Google Code Jam consists of several rounds and the difficulty is different for each round. Here is the explanation of the difficulty of each round:

  • Qualifying round, this is the easiest round, it usually contains a very easy problem that anyone who knows how to code will probably be able to solve it correctly. And in general, for beginners, it is easy to move on to the next round. Each year there is a minimum number of points that someone needs to score in the qualifying round to advance to round 1.
  • Round 1, there are 3 instances of round 1 (1A, 1B and 1C) with different problems for each one, but the 3 rounds are
Keep reading

Google Code Jam consists of several rounds and the difficulty is different for each round. Here is the explanation of the difficulty of each round:

  • Qualifying round, this is the easiest round, it usually contains a very easy problem that anyone who knows how to code will probably be able to solve it correctly. And in general, for beginners, it is easy to move on to the next round. Each year there is a minimum number of points that someone needs to score in the qualifying round to advance to round 1.
  • Round 1, there are 3 instances of round 1 (1A, 1B and 1C) with different problems for each one, but the 3 rounds should be similar in difficulty. The top 1,000 of each go to round 2. It's not easy for beginners to go to round 2, but it's not that difficult either, qualifying for round 2 requires some practice and experience.
  • Round 2, out of 3,000 participants, the first 500 go to round 3. This is when it gets difficult, it is not easy even for experienced contestants to pass this round. It takes practice.
  • Round 3 (the semi-final), this is the most difficult online round of the competition. The top 25 (+ last year's champion) go to the final, and it is very difficult to be in the top 25.
  • The final round, this is a super difficult round, the easiest problem in this round could be more difficult than all the problems before round 2. To win this round you have to be on top of the top and wish Gennady Korotkevich (Competitive programmer) does not participate :) (he will be in the final round this year since he was champion last year).

Both are a programming competition similar to TopCoder or ACM ICPC that is hosted by GOOGLE.

So what is Code Jam?

It is a programming competition similar to TopCoder or ACM ICPC. You are given 4 problems, each with a small (small n) and large (large / huge n) input set, and a time limit to write programs to solve as many as possible. You're ranked by the combined score of the ones you've solved and within that score by how quickly you solved each one.

For tough problems, you can often write a brute force solution with terrible complexity (think 2 ^ n) for the small input set. For the big ones

Keep reading

Both are a programming competition similar to TopCoder or ACM ICPC that is hosted by GOOGLE.

So what is Code Jam?

It is a programming competition similar to TopCoder or ACM ICPC. You are given 4 problems, each with a small (small n) and large (large / huge n) input set, and a time limit to write programs to solve as many as possible. You're ranked by the combined score of the ones you've solved and within that score by how quickly you solved each one.

For tough problems, you can often write a brute force solution with terrible complexity (think 2 ^ n) for the small input set. However, for the big guys, you'll need to really understand the problem and write an efficient solution through memorization, dynamic programming, pruning, or good (sometimes obscure) algorithm choices. For small solutions you get instant verification of your solution by submitting it (but not what it failed, only what it did), for large ones you submit and hope for the best.

The new track, Distributed Code Jam (DCJ), will consist of algorithmic problems that are similar to the original Code Jam. But to solve them, competitors will have to program in a distributed environment.
According to Onufry Wojtaszczyk, a Google software engineer and one of the main creators behind DCJ, this new track will challenge seasoned engineers and help teach students the skills they will need to work at a company like Google.

“Most of my coding skills before joining Google came from coding contests, and they served me very well at Google. However, the only thing the coding contests didn't prepare me for was the distributed calculations that become obvious once you work at Google for a while. At the scale that Google and other web companies operate, doing work on a single computer, no matter how powerful, becomes unfeasible and you have to learn to deal with the distribution of work across multiple machines, ”said Wojtaszczyk.

To enter the new track, students will need to register and qualify for Code Jam Round 3. DCJ will give 10 lucky finalists a chance to reach the Code Jam Finals, which will take place in Seattle, WA, USA. this year. Finalists can win up to $ 3,000 USD and a chance to be named the first Distributed Code Jam Champion!

Getting to the GCJ finals is much more difficult than getting a job at Google.

So I'd probably say that the average GCJ finalist is better in this field than the average Google programmer in his field.

Now if you pick an average Google programmer, they probably don't have any competitive programming experience. Even if they did it in the past, it was most likely some time ago when they were students, and most likely they weren't at the level of the GCJ finals even back then. In the past when competitions were easier and they were in their best shape. So in competitive programming, the average Google programmer has at

Keep reading

Getting to the GCJ finals is much more difficult than getting a job at Google.

So I'd probably say that the average GCJ finalist is better in this field than the average Google programmer in his field.

Now if you pick an average Google programmer, they probably don't have any competitive programming experience. Even if they did it in the past, it was most likely some time ago when they were students, and most likely they weren't at the level of the GCJ finals even back then. In the past when competitions were easier and they were in their best shape. So in competitive programming, the average Google programmer has almost no chance against the GCJ finalist, unless their "average programmer" is Petr or one of the few strong contestants who work at Google and are still in good shape. .

If you choose the GCJ finalists, they are most likely still students and have no industry experience, at most some internships and personal projects. In this case, they will be worse programmers (in terms of engineering) than the average Googler. However, we must also keep in mind that some of the GCJ finalists are already people with industry experience; a random example might be Tomek Czajka, who came in No. 4 in the 2015 GCJ finals after working at Google in 2007-2013 :) So I would say that on average GCJ finalists are not that far behind the Googlers in programming like Google's are behind the GCJ finalists in the GCJ resolution.

But still, it's all about shaking hands and making a lot of assumptions, since all we know is that in each group we have people selected to perform a particular activity at a good enough level, and activities for two groups have very little in common. So yeah, apples versus oranges; it is not clear what comparison you want to make. Being good at one of the two activities mentioned above has nothing to do with being good at others.

The problems are much more different in style, so it is not easy to directly compare them. Personally, I felt that some Topcoder problems are based more on mathematical properties (GCJ is more algorithmic) and require less implementation compared to other quizzes.

My rough / qualitative interpretation based on my experience with GCJ'14:

  • Qualifying round: iirc, of course, the problems were quite simple (although I skipped the last one out of laziness). Maybe ~ Div 2500.
  • Round 1: Div 2 500 / Div 1 250, Div 2 1000, the last one maybe a little more difficult (fun fact: second problem of
Keep reading

The problems are much more different in style, so it is not easy to directly compare them. Personally, I felt that some Topcoder problems are based more on mathematical properties (GCJ is more algorithmic) and require less implementation compared to other quizzes.

My rough / qualitative interpretation based on my experience with GCJ'14:

  • Qualifying round: iirc, of course, the problems were quite simple (although I skipped the last one out of laziness). Maybe ~ Div 2500.
  • Round 1: Div 2 500 / Div 1 250, Div 2 1000, the latter maybe a bit more difficult (fun fact: the second problem from Round 1B was almost exactly an old Div 2 1000 Topcoder).
  • Round 2: between rounds 1 and 3 in difficulty
  • Round 3: Jonathan Paulson (in another question) thinks he's at Div 1 proficiency level.


I would recommend looking at the resolution rates to get an idea of ​​the relative difficulties.

The IOI Regulations state that as long as you were enrolled in a non-college school (high school, high school, etc.) from September to December of the year prior to that IOI year, then you qualify to join. See official regulation

Google Code Jam is open to everyone, including professionals, subject to the following terms: Terms and conditions

Other Guides:


GET SPECIAL OFFER FROM OUR PARTNER.