Блог пользователя lis05

Автор lis05, история, 17 месяцев назад, По-английски

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!

  • Проголосовать: нравится
  • +134
  • Проголосовать: не нравится

»
17 месяцев назад, # |
  Проголосовать: нравится +7 Проголосовать: не нравится

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

  • »
    »
    17 месяцев назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    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.

»
17 месяцев назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

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

»
17 месяцев назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

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.

»
17 месяцев назад, # |
  Проголосовать: нравится +48 Проголосовать: не нравится

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

»
17 месяцев назад, # |
Rev. 2   Проголосовать: нравится +4 Проголосовать: не нравится

g

»
17 месяцев назад, # |
  Проголосовать: нравится -45 Проголосовать: не нравится

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.

  • »
    »
    17 месяцев назад, # ^ |
      Проголосовать: нравится +6 Проголосовать: не нравится

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

    • »
      »
      »
      17 месяцев назад, # ^ |
        Проголосовать: нравится -31 Проголосовать: не нравится

      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".

      • »
        »
        »
        »
        17 месяцев назад, # ^ |
        Rev. 3   Проголосовать: нравится +34 Проголосовать: не нравится

        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.

      • »
        »
        »
        »
        17 месяцев назад, # ^ |
          Проголосовать: нравится +3 Проголосовать: не нравится

        Not everyone here is from India

  • »
    »
    14 месяцев назад, # ^ |
    Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

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

»
17 месяцев назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

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.

  • »
    »
    17 месяцев назад, # ^ |
      Проголосовать: нравится +13 Проголосовать: не нравится

    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%)

    • »
      »
      »
      17 месяцев назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      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.

»
17 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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

»
14 месяцев назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

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.