Please, try EDU on Codeforces! New educational section with videos, subtitles, texts, and problems. ×

nihiragarwal's blog

By nihiragarwal, history, 5 weeks ago, In English,

Hey, I have been practicing problems from the problemset and also gave regular contests hosted on codeforces. During the beginning I struggled to even submit the A problem in contests. So I thought I should first hone my brute force and implementation skills. I solved over 400+ problems from codeforces problemset. But even still, I struggle to submit A and B problems of Div. 2 contests and sometimes even Div. 3 contests. I can't figure out what is wrong with my way of practice or maybe the way I think about problems.

Any kind of advice would help me.

Thanking you in advance

 
 
 
 
  • Vote: I like it
  • -2
  • Vote: I do not like it

»
5 weeks ago, # |
Rev. 2   Vote: I like it +13 Vote: I do not like it

Solving easy problems are great to increase your solve count. However you can't expect to do well just by solving 300 div2A problems. Now solving 300 div2A is actually quite an impressive feat, Congrats! You can surely work hard. However it's time to to move on from just solving div2A. You also have 100+ submission in div2B which is also great! But we need those numbers a little bit higher. You will improve when you get out of your comfort zone.

And secondly please up-solve the problems from contest. You have over 30 unsolved problems which you tried but gave up. Take some minutes to solve them (maybe just some of them) either by yourself or using the editorial. I assure you that you will learn something.

Last but not least, cf rating in the end is just a number. Don't worry about it too much during contest. Focus on the problems and try to solve them. Don't let the pressure of rating get to you. For that you can try participating in virtual contests.

You can work hard, now work little smarter :D

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it +5 Vote: I do not like it

    Thank you

  • »
    »
    5 weeks ago, # ^ |
    Rev. 2   Vote: I like it 0 Vote: I do not like it

    I have barely barely practised solving C's and D's, just 200+ div2A and 100+ div2B was enough to reach specialist level. maybe he just needs more contest experience

    • »
      »
      »
      5 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Yes That's the point. Surely 300As are overkill. Of course, we need to solve harder problems to get better.

»
5 weeks ago, # |
  Vote: I like it +3 Vote: I do not like it

I like to watch video explanation on youtube. I try to to understand how they think not only just get the solution. I think it helps. You can try this.

»
5 weeks ago, # |
  Vote: I like it +4 Vote: I do not like it

I looked in your personal submissions and it seems you have only been solving A and B in practise. Now I understand you think that is better since you cant even solve those in contest. But Problem A and B are as you mentioned mostly Brute Force and implementation, which highly limits your thinking. I would suggest trying a step harder problems in practise, cuz I myself used to find it hard to solve problems during contest while I could that level problems during Practise. If you want to solve problems of level A and B during contest, you must practise problems of level C or higher. Also after a contest ends, solve atleast one or two problem you couldn't solve during the contest. For you I would personally recommend solving(or atleast trying) till problem C. Once you are comfortable solving C level problems in Practise, you will more confident solving A and B in contest. It might be harder for you to solve C level problems in beginning, if that is the case, give atleast 15-30 to think of a problem and if you still have no clue of the problem, only then read the editorial for it, but dont read the entire editorial at once. Read one or two lines, and see if you can figure out the problem.(Please don't make it a habit to read the editorial or you may find yourself reaching for the tutorial button without giving your full effort to the problem.I myself have been in that place and its hard to get out.) Lastly I would recommend going through some basic topics like "Number Theory" , "Binary Search", "Hashing".( You can find articles on Hackerearth, thats where I studied these.) Try to solve problems on these topics. I have seen coders stuggle in the beginning and sky rocket after the initial phase. You're currently in that initial phase. I'm sure you will sky rocket too if you keep up the hard work.

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Thank you

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Any suggestions for me ? Seems like my profile is implemented version of your suggestions :)

    • »
      »
      »
      4 weeks ago, # ^ |
        Vote: I like it +2 Vote: I do not like it

      Try to give contests regularly, if possible give virtual in your spare time. I guess nothing prepares you better for a contest than a contest :)

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Maybe you are losing out on data structures. Try learning new data structures before moving to algorithms, once you have working knowledge for a particular data structure, you might want to implement it on some easier questions. Data structures might also provide you new tricks to solve problems.

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

1.Always try to solve question +100/200 greater difficulty level than your current rating.
2.Solving more easier problems will give you little bit pleasure but than is spontaneous.
3.Remember rating is a barrier in expanding your thought's,trying problems out of your comfortable zone so don't give a shit to rating.
4.Change your origin of pleasure from +delta(positive rating change) to learning new things once you will learn sufficient things you will ultimately get good rating.

All the best and Happy coding. :)

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Take a look at this blog. This could be a good starting point.

»
4 weeks ago, # |
  Vote: I like it +6 Vote: I do not like it

do you code with paper? coding with paper helps a lot with some of the intuition that comes w/ bruteforcing A and B

»
4 weeks ago, # |
Rev. 3   Vote: I like it +7 Vote: I do not like it

I just checked you on Codeforces visualiser, you should check yourself too.

You have negligible solve count of problems over 1000 rated problems. Mostly you have solved 1000 rating problems and less, so I would predict your rating to be around 1000.(I haven't checked your rating)

UPD: My guess was correct, your rating is indeed quite close to 1000.

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Make mashup contest of four/five 1200 rated problems and 2 hour time limit then do VC on them.If you see yourself improving in that then do the same for 1300 then 1400 and so on.

»
4 weeks ago, # |
  Vote: I like it +8 Vote: I do not like it

And one advice, don't take advice from those who have never been newbies. Their advice won't work for you. In particular don't learn shitty algorithms/data structures stuff. Instead start solving 1200 rated problems from problemset learning anything you encounter in editorial. Do 100+ problems of 1200 rating and 100+ of 1300, kill me if you don't reach 1200. If you happen to reach 1200 rating before solving this much, move to solving 1400 and so on.

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Thank you

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it +46 Vote: I do not like it
    don't take advice from those who have never been newbies

    Everyone was a newbie at some point, unless you live in a parallel universe where some folks are simply talented and perform at ~2100 rating 2 days after they wrote their first line of code.

    • »
      »
      »
      4 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      i mean a lot of the current red stars already had a decent amount of CP/math experience so they were never newbies on codeforces SPECIFICALLY is what i think he meant.

    • »
      »
      »
      4 weeks ago, # ^ |
      Rev. 2   Vote: I like it 0 Vote: I do not like it

      You are probably biased in this. When I started CF, I was really bad at maths, general thinking and what not. I was pretty good at what programming they taught me in school. But I couldn't do a single problem on CF Div 2 on some days. It was mostly because of very poor deductive skills, little to no reasoning capability. On the other hand people who never experienced this when they joined CF have biased opinions on how to practice.

      For example someone who easily maintained 1500 rating when starting CF wouldn't know what a guy who can't be stable 1000 feels.

      I have seen many red people saying "do hard problems, challenge yourself, think yourself even if takes days". Though opinions certainly differ but I have generally observed that people with good previous background tend to underestimate how hard it can be for someone with very weak background.

      I said that in my comment, because people with good background who for example got 1600 in a few contests think that what they did is enough to get 1600.

      Edit: yes by newbies, I meant newbie level rating on CF.

      • »
        »
        »
        »
        4 weeks ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        Do you think that starting at, let's say, AtCoder or CodeChef, and getting basics there before joining Codeforces, makes one not being able to understand how being a beginner feels and looks like? Is Codeforces in some way completely different from all other platforms? I think every site has its own flavor, but they are similar enough to apply same core concepts.

        For reference, here is my old TopCoder graph: link. The 711 point there is ~10 months after I got my first account at an online judge, plus I had a bit of experience prior to that from taking part in high school informatics competitions.

        Sure, opinions differ, and you may get different perspectives on how long to work on a problem by yourself, how much sense topic-wise practice makes, exactly how challenging should the problems be to you... But the core idea is the same: you'll have to practice, and that will take time, and that will be hard and challenging, and you'll need patience because results won't come in a day.

        I'm probably on the other side of that bias spectrum: as you get to see strong contestants who underestimate how hard it is to practice, I usually see beginners who underestimate how hard it is to practice.

        • »
          »
          »
          »
          »
          4 weeks ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          By starting CF, I meant starting taking part in any programming competitions. Not any specific site. Sorry for making it unclear.

          As for the last paragraph, you mean beginners who overestimate how hard it is to practice?

          Anyway, I want beginners to understand that it is hard but what I wanted to convey through my comment was -> don't follow random advice from for example 5 star guys on Codechef, or random guys who never did deliberate practice.

          • »
            »
            »
            »
            »
            »
            4 weeks ago, # ^ |
            Rev. 2   Vote: I like it 0 Vote: I do not like it

            When I say about beginners who underestimate how hard it is to practice, I mean people who have completely unrealistic expectations about training and improvement, so for example they think that they are practicing a lot while in fact they aren't, or they don't realize that their current improvement is reasonable for their amount of practice — as a result they spend time trying to figure out what is wrong with their practice instead of simply practicing more, or they get upset and demotivated believing that they are untalented/dumb/wrong. Again, "hard" is not really the right word here, but I used it for simplicity.

            Regarding not listening to a random 5* guys: I agree on this part as well; while for sure there is a positive correlation between skill level and understanding of how competitive programming training works, you can't guarantee that somebody knows the stuff or can be a good coach based solely on their own rating. At the same time, if you get 10 opinions from 10 different experienced contestants, and they all have some part in common, I'd expect that it is very likely that this shared part is correct.

            • »
              »
              »
              »
              »
              »
              »
              4 weeks ago, # ^ |
                Vote: I like it 0 Vote: I do not like it

              True.

              Also, I happen to know a lot of people who give advice like "Just give contests, you will get Div 1. on Codeforces" or "Maybe you don't know enough DS, just learn Segment tree, and fenwick tree and also learn persistence, you will get better" or "Dude, you don't know KMP, learn it now" or "I just kept giving contests and I got Candidate master".

              I presume it's because they never practiced deliberately, and I suspect advice taken from these people is what makes beginners think that they have practiced enough, when in fact, they haven't.

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

      Also, it isn't about first line of code. Is it? Competitive programming is closer to math competitions than actual industry/(any other thing) programming. Some people are better than others and they don't know it. Sure it maybe because of prior experience. But it happens often that people underestimate the effort needed to reach certain level simply because they didn't consciously work to get there.

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

        I totally agree on this part, and "first line of code" was there for simplicity. It doesn't change the main idea though: you'll have to work a lot, in one way or another.

        • »
          »
          »
          »
          »
          4 weeks ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          Sure!

          I too didn't mean don't take advice from red/yellow guys, who clearly worked their worked way to the top

          Just saw these recent blue/purple in 1 month blogs and my comment was more directed at them.

»
4 weeks ago, # |
Rev. 3   Vote: I like it +1 Vote: I do not like it

90% of your submission are AC's!!! i have more than 50% WA's XDXD may be i m stupid!!
upd:- i saw so many A's maybe all of them..... and i also started taking this(CP) seriously in Feb so i guess you have wasted a lot of time of easy ones!!

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

A lot of times on cf I felt A is harder than B. In my recent contest I spent more than 30 minutes on A in comprison with 10 minute on B. I feel you should only try to solve only one or two problems not many.