Lately I have been participating in various competitive programming contests online, and there are some major platforms available now, that were not there several years ago. I have decided to compile a benchmark for these platforms: hopefully it might be useful for other contestants as well. This list is by no means exhaustive, and more contests can be found through the following link, although information provided there is not always complete/accurate: www.hackerrank.com/calendar
CATEGORY | CodeForces | TopCoder | HackerRank | CodeChef |
---|---|---|---|---|
SHORT CONTEST NAME & DURATION | Codeforces Round: 2 hours | Single Round Match (SRM): 1.5 hour | 101 Hack: 2 hours, HourRank: 1 hour | Cook-Off: 2.5 hours |
# OF DIVISIONS | 2 | 2 | 1 | 1 |
# OF PROBLEMS PER CONTEST | 5 | 3 | 5 and 4 respectively | 5 |
PARTIAL POINTS | NO | NO | YES | NO |
ACCESS TO COMPETITORS' CODE | YES: Hacking | YES: Challenge | NO: only after contest, and only to those problems that you have solved as well | NO: only after contest |
PROBLEMS AVAILABLE IN: | English, Russian | English | English | English, Russian, Chinese, Vietnamese |
COUNTRY OF ORIGIN | Russia | USA | India | India |
... | ||||
Leave a comment if you think I should add more information to this table, or perhaps there are some other good platforms that I don't know about yet.
Personally, I prefer HackerRank-style competitions, because they grant points for partial solutions (similar to IOI). Thus, even solutions that are not the best in terms of time complexity can help you move up in the ranking, as long as they are correct. This is not the case with other platforms, where BOTH correctness AND time efficiency are essential.
HackerEarth is also hosting several different types of contests (like monthly easy and clash); they don't have rating system yet.
In case of HackerRank part about "access to code" is not exactly true — for some contests code is open (and you can download it from leaderboard page), for some other it isn't. I don't know if there is any system behind it, or it is just a pure random :)
I am waiting rating on HackerEarth for month, I didn't know they don't have rating :D
Also I want to mention Codechef Lunchtime — they have subtasks.
Now I will talk about HackerRank.
Possible HourRank will have sometimes 3 tasks and that part I mention to HackerRank guys at start. The contest with three tasks is harder for preparing because difference between tasks must be bigger. You think more about subtasks and smaller limits. Everybody should spend 1 hour of solving something good and enough interesting...
I am not sure but I think that HackerRank don't have anything with India. I think it is USA site and creator is from Bangladesh.
About random code access I don't know anything. So far I have thought that is only possible if you are problemsetter :D
For me the best option is partial scoring with partial hacks :)
Both of HackerRank's co-founders are from India, and one of their offices is in Bangalore. The other one is in Palo Alto.
Thanks for the reference to HackerEarth. I will check it out, and maybe add it to this table later.
As for HackerRank, I've tried to see other people's code through the leaderboard, but it doesn't even list problem scores separately... I don't understand how you were able to access other people's code there.
Here I have download button near every nickname; and in this one there is no such button. Maybe they have to turn it on manually, and sometimes admins forget about it :) Or maybe there are some specific reasons for such difference.
I have figured this out: these buttons are only accessible for problems, that you have successfully solved. I will modify the table accordingly.
HackerRank has 5 divisions -> O(1), O(log N), O(N), O(N^2) and O(2^N) but yes unlike TopCoder and CodeForces there are no separate contests for these divisions.
I think we can see others solution on HackerRank only when we have completely solved that problem during the contest. I am not sure though.
"HackerRank has 5 divisions -> O(1), O(log N), O(N), O(N^2) and O(2^N)"
this is like saying codeforces has divisions like newbie, pupil, specialist, candidate-master...