Comments
On SwistakkIMO vs IOI, 12 years ago
+24

As a former IMO and current IOI contestant, I have also gotten the feeling that IMO is more of a "big deal" than IOI. But the primary reasons I would attribute it to are just a combination of historical accident and societal influence, rather than any intrinsic qualities of the subjects themselves. Nobody seems to have mentioned this yet:

  1. The IMO is older, by three decades — there's much more time for former contestants to spread the word, for discussion groups and support networks and training camps to be built, for people to discuss the most effective ways of training students for it, for mock tests and sample problems and educational materials to be written, etc.
  2. Mathematics is much more prevalent in school curricula. Most people I know who are into competitive programming, got into it for fun on their own or with guidance from older students. There's no guarantee that students who would be interested in programming will always be exposed to it; even when they are, it's usually after middle school. But students interested in mathematics have many more classes and contests that can grab their attention and lead them to start competing, from as early as elementary school (my first math competition was in second grade); they are more likely to meet a teacher who tells them about contests, or enter a school system that has special accommodations or resources that help them on the track towards the IMO. So it feels to me that IMO contestants are selected from a larger population of interested students who have had more time to prepare than IOI contestants are, and it stands to reason that society would tend to recognize the top students sampled from the first group a bit more. Hopefully, sites like Codeforces will help change this :-)

I don't really have a strong opinion on the relative difficulty of the two contests. I will say I think the IMO tests a wider range of topics than the IOI, with four subject areas that overlap somewhat rarely, all of which contestants have to grasp to be successful. The algorithmic ideas of IOI seem to be more interrelated and focused.

I don't know about speed (although I know Python and a lot of other high-level programming languages, I generally stay away from them for programming contests where speed is so important). I think the most important differences between them are:

  1. print is a statement with its own special syntax in Python 2, but a function in Python 3
  2. between two integers, / does integer division in Python 2 but floating-point division in Python 3 (2/3 = 0 or 0.666..., 3/3 = 1 or 1.0). Note that you can use // for integer division in both versions.
  3. to read a line from standard input, use raw_input() in Python 2 but input() in Python 3. (input() in Python 2 reads a line and evaluates it as Python.)

However, as others have already mentioned, Python 2 is more stable, supported by libraries, and maybe even installed by default in places. Plus, even using Python 2 you can change many places to behave like Python 3 with future imports. For the first two differences I mentioned above, you can change to Python 3 behavior with from __future__ import print_function and from __future__ import division.

If you want to check more differences, see Python's official what's new docs.