lis05's blog

By lis05, history, 11 months ago, In English

Hello Codeforces!

Since I have exams in a few days, I was thinking about what I have spent my life on, and why I haven't been preparing for the exams all that time, doing CP instead. So, I decided to calculate a rough amount of time I have spent solving problems.

Codeforces

I have participated in $$$152$$$ contests, each being $$$120$$$ minutes on average. I have upsolved $$$892$$$ problems. There were a lot of easy problems that I've solved in $$$10$$$ or $$$20$$$ minutes, and there were some problems I had to think about for more than $$$5$$$ hours. Since solving problems also involves coding them, I decided to take the average as $$$60$$$ minutes.

Summing up, I have spent $$$152 * 120 + 892 * 60 = 71760$$$ minutes or $$$1196$$$ hours spent on $$$152$$$ contests and $$$892$$$ upsolved problems on codeforces platform.

atcoder

I have participated in $$$28$$$ atcoder contests, each being $$$100$$$ minutes on average. I have upsolved near to $$$50$$$ problems, and as with the case of codeforces, I decided to take the average time spent on a single problem as $$$60$$$ minutes.

Summing up, I have spent $$$28 * 100 + 50 * 60 = 5800$$$ minutes or $$$96$$$ hours spent on $$$28$$$ contests and $$$50$$$ upsolved problems on atcoder platform.

These were all of the specific platforms I've ever tried.

National olympiads

During the last 4 years I've participated in many national olympiads. I have participated in roughly $$$32$$$ national contests of any type(being national OI, national OI selections, selections to IOI, etc). All contests had duration of $$$5$$$ hours. Summing up, $$$32 * 5 = 160$$$ hours spent on any kind of national OI contests.

International olympiads

I've taken part in $$$2$$$ RMI editions, each having $$$2$$$ contests.

I've participated in $$$2$$$ IZHO olympiads, each having $$$2$$$ contests.

I've participated in $$$1$$$ IATI competition, consisting of $$$2$$$ contests.

All of the contest had durations of $$$5$$$ hours. Summing up, $$$4 * 5 + 4 * 5 + 2 * 5 = 50$$$ hours spent on solving problems from international competitions.

Other

During my CP career, I've solved a lot of problems. Some were given to me by my coach or friends, some I have solved while practicing new techniques. My estimation of the number of solved problems on platforms other than Codeforces and atcoder is near 250 problems. For these problems, I decided to lower the average time spent on sovling a single problem to 45m.

Summing up, $$$250 * 45 = 11250$$$ minutes or $$$187$$$ hours spent on solving problems from other platforms.

Conclusion

The total time spent on solving any problems from any contests or olympiads is $$$1196 + 96 + 160 + 50 + 187 = 1689$$$ hours.

It means that I've spent 1689 hours or 70.4 days solving problems without any breaks. That's a huge number, right?

Of course, the calculations were made with awful precision, and are partially based on my personal feelings. Still, I expect them to be at least the lower bound on the real result.

Would I, if possible, go through all that once again? Certainly.

Would I recommend anyone else to try spending hundreds or thousands of hours solving algorithmic problems? Yes! It was the best experience in my life.


I wrote this post because I wanted to share my story. If you can, leave a comment below this post with your calculations of the time spent solving problems, or any other related data. I am looking forward to hear your story!

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

»
11 months ago, # |
  Vote: I like it +7 Vote: I do not like it

I estimate 200-400 hours estimate assuming between 15-30 minutes average per problem.

  • »
    »
    11 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    I've calculated that I've spent approximately 17 days across all platforms, assuming an average of 15-30 minutes per problem rated above 1200 (or its equivalent on other platforms).

    It's interesting to note that you and I have a similar rating, which suggests we get to a similar rating over the same period. I hope more people give their approximations, it would be cool if it is true for a good amount of people.

»
11 months ago, # |
  Vote: I like it +8 Vote: I do not like it

This is a very rough estimation. Not considering contests, I have around 260+ 1900R+ problems, it's difficult to say the exact average time I spent for each problem, because I usually don't solve difficult problems in one sit. But I would guess, on average 120 minutes for each of them, probably around 30 of them took me days to solve, but since I didn't solve them in one sit, I assume they took me 8 hours on average. Here I get 120 * 230 + 8 * 60 * 30 = 700 hours. 85 1600R problems, around 120 minutes for 40 of them, 40 minutes for 30, and 20 minutes for 15, That is 105 hours. 48 1700R problems, around 90 minutes in average, that would be 72 hours. 120 minutes average for 79 1800R, that would be 158 hours.

So, that estimates 700 + 105 + 72 + 158 = 1035 Hours for 1600R+ problems. For the 129 1400R-1500R problems, I guess that would be 45 minutes on average, sums up to around 97 hours. 40 of the 1200R problems probably took me 90 minutes average, that is 60 hours. The 542 remaining problems probably took me another 90 hours

So, altogether it is 1035 + 97 + 60 + 90 = 1282 hours. I think this is way off, do you think as well

  • »
    »
    11 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    You should start contests again you can do much better considering the quality of problems you have solved

»
11 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Its been exactly 180 days since I started coding. Only had basic knowledge at the start. I'm going to take a very rough estimate of lets say 3 hrs a day. So that should be 540 hours till now maybe? I know its a very rough estimate but I remember spending more than 3hrs a day coding before exams, and to just 10 minutes a day during exams so I guess 540 hours should be a good rough estimate

»
11 months ago, # |
  Vote: I like it +8 Vote: I do not like it

I also think that the numbers posted above as well as in the blog are underestimates because we don't account for the time that we think about problems while doing other things. Think Evan Chen's blog on this or Radewoosh's.

»
11 months ago, # |
  Vote: I like it +48 Vote: I do not like it

Idk about solving problems, but I have 3000 hours in csgo across all my accounts.

»
11 months ago, # |
Rev. 2   Vote: I like it +4 Vote: I do not like it

g

»
11 months ago, # |
  Vote: I like it -45 Vote: I do not like it

Its a waste of time giving so much time and energy to CP, very sorry to say but CP has no recognition and respect in today's social society until and unless someone has not cracked any competitive exam or any good company.

  • »
    »
    11 months ago, # ^ |
      Vote: I like it +6 Vote: I do not like it

    And who said people here are doing it for "respect"? Dude, it's just a hubby

    • »
      »
      »
      11 months ago, # ^ |
        Vote: I like it -31 Vote: I do not like it

      Dude, read the blog carefully, "there is written during my CP career". If CP was hobby then why he has written career. And harsh reality is that more than 80% do this for getting good job not as hobby and if the person gets job the person leaves the so called "HOBBY".

      • »
        »
        »
        »
        11 months ago, # ^ |
        Rev. 3   Vote: I like it +34 Vote: I do not like it

        He's my friend and he has just passed out from school.

        I hope its not too unrealistic to expect you to be able to comprehend english, but how does "during my CP career" imply that competitive programming was not his hobby? Please do not tell me you expected him to write "during my CP hobby". If that is the case, I'd implore you to "Save people" by not conversing with and subsequently inflicting your literary autism upon them.

        And harsh reality is that more than 80% do this for getting good job not as hobby and if the person gets job the person leaves the so called "HOBBY".

        No one outside India does competitive programming for a job, and the overwhelming majority of retards who do it for a job suck anyways. Money-hungry dumbasses like you make me, an Indian, racist against Indians.

      • »
        »
        »
        »
        11 months ago, # ^ |
          Vote: I like it +3 Vote: I do not like it

        Not everyone here is from India

  • »
    »
    7 months ago, # ^ |
    Rev. 3   Vote: I like it 0 Vote: I do not like it

    You are the reason I want to leave my country after 12th grade

»
11 months ago, # |
  Vote: I like it +3 Vote: I do not like it

I've only ever solved on codeforces and leetcode. On codeforces, it's 281 problems, times 30 minutes on average ~ 140 hours. Leetcode 483 problems (mostly hard) times 40 minutes on average, so ~240 hours.

Overall, around 380-400 hours.

I spend way more time learning about advanced algorithms/concepts for my research in PhD. I only do CP to improve my coding skills (which is trash) and my fast thinking (I'm an incredibly slow thinker), but I'd estimate my "theoretical" background is closer to a candidate master/yellow on CF.

  • »
    »
    11 months ago, # ^ |
      Vote: I like it +13 Vote: I do not like it

    I feel like CM and master don't require a lot of "theoretical" background, I am currently practicing 2300s (which if you solve consistently in the contest, you're pretty much guaranteed to get >2100), and the hardest concept I've encountered was "Sum Over Subsets DP", which is not even that advanced. So you might as well be GM/IGM knowledge wise, but with current meta of CP problems, "theory" is only 30-40% of your rating (and below 2100 it's like 10-20%)

    • »
      »
      »
      11 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      I get what you mean. What I mean is that I often see several problems in ~2200-2600 ranges that I can solve in say 30 minutes (in theory) with the required target runtime, but coding it would be a nightmare for me because I haven't invested the time into improving my implementation skills.

      I've gotten a lot better, but I still feel I'm behind in terms of my implementation skill vs the problems that I can solve. Sometimes I even get stuck on implementing ~1700 problems even though I can solve them in 5-10 minutes.

»
11 months ago, # |
  Vote: I like it 0 Vote: I do not like it

I am a beginner so I solved most of the easy problems.

I participated about 110 contest in codeforces, codechef and some contests in my university. It was about 2 hours each and total is 110*2 = 220 hours.

In Codeforces I solved about 500+ problems outside contest, so it took average 30 minutes and other online judges I solved about 250+ problem, it took average 20 minutes. So in total it was 500*30 + 250*20 = 20000 minutes or 333.33 hours.

It means that I've spent 550+ hours or about 23 days solving problems without any breaks.

I will continue this journey because it is really fun for me and it is also increase my thinking capability . : )

»
11 months ago, # |
  Vote: I like it 0 Vote: I do not like it

So that means, in 70.4 days i can reach master.

  • »
    »
    7 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    70.4 days where the only thing you do is solve problems, no pause

»
7 months ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

I remember doing the same calculations almost a year ago, before the last ICPC World Finals, with a focus on ICPC-style contests since my competitive programming career was centered mainly around ICPC. Let me try to recreate it.

Let's start with stuff that is easy to calculate: team contests on our university server. I just logged in, and there are 151 "division 0" contests available for my team. We did not participate in all of them because some of them were meant for other teams in our university, but we participated in most of them. After quick filtering, I counted 13 contests that were obviously not for us, but I definitely missed some, so for simplicity, let's round this number to 21 and assume that we participated in ~130 of them.

Bootcamps. My ICPC career lasted roughly six full seasons, and each season, I participated in all four "big" bootcamps: two PTZ (summer and winter) and two Moscow (Workshop and Prefinals). I will assume that each of them consisted of nine contests. This is not true; some of them were shorter, but it is hard to track, and there also were some related championships like RuCode (and MosCode) and somewhat random ByteDance bootcamps that are hard to count, so I assume that all of these will cancel out. There were also a bunch of smaller (~6 contests) bootcamps that I participated in. Those include bootcamps hosted for a few teams somewhere in nature (I counted five of this kind) or "Welcome, [cityname]" (three of this kind, Barcelona twice and Riga once). Summing all that up, I had approximately $$$6 \times (4 \times 9) + (5 + 3) \times 6 = 264$$$ contests.

Other contests. There were many different kinds of them on many different platforms. They are difficult to count, but some of them are definitely worth mentioning. These are six NEERCs and the World Finals, 14 SPbSU Championships, an unknown number of contests on opentrains, including OpenCups, two or three hand-made mirrors of previous World Finals, and some others, including four contests on CF. At least 28 contests total.

Summing everything together, I participated in at least 422 ICPC-style contests throughout my career. I definitely forgot something and also counted some extra. Still, overall, I believe it to be a fair number, especially because I deliberately ignored some easier contests like ICPC quarterfinals and qualifications. However, to get a pretty number, I dare to add 10 more wildcard contests to the sum.

So, 432 5-hour contests! It equals to 2160 hours or 90 days of ICPC-style training!

This number does not include any upsolving (which is very important for improving!). It is just too hard to calculate, especially because the ratio between solving and upsolving was changing throughout my whole career. We were spending more time upsolving problems than just solving them during the contest when we were younger, and later on, we started spending about an hour on upsolving per contest on average, so my estimate would be about an additional 30% for upsolving.

What I did not count. Any CF activity, including 67 rated and 19 unrated rounds and numerous random or thematic problems. 21 rated AtCoder contests. Any activity on other platforms. Any research or reading books/tutorials. Preparing two great contests (seriously, check them out!). Teaching! Teaching algorithms at a university was immensely useful for filling gaps in my knowledge, especially because I never had courses similar to those I was teaching. I was a part of three different courses on algorithms before the World Finals (one of them was held multiple times, but I count it as one), and I learned something from each of them.