--- slug: /general/practicing title: How to Practice author: Benjamin Qi, William Lin, Eric Wei, Nathan Wang, Nathan Chen order: 4 --- How to practice, when to read editorials (analyses), etc. ## Practicing ## Reading Editorials Knowing when to "give up" on a problem and start reading the problem's editorial is challenging. Below are the opinions of various individuals. Note that "give up" is in quotes, because one still learns when they "give up" and read an editorial! ### Benjamin Qi If you're still coming up with new ideas, keep thinking. Otherwise, you have several options: - Look at [part of] the solution. (If CodeForces, look at the tags.) - Leave it for a while and do something else if you actually want to solve it on your own. - Get a hint from someone else. I'm impatient, so usually I go with the first option. Sometimes I end up reading an editorial before reading the statement, but idk if this is a good strategy. :/ In any case, if you thought about a problem a lot during a contest but didn't end up solving it, then I don't see any reason not to read the editorial when it comes out (vs. continuing to think about it on your own). Also, you should always implement the solution afterwards! ### William Lin > I follow three guidelines (from most important to least important) > 1. Having fun, just doing whatever you feel like doing > 2. Spend about the same amount of time that you would be able to during a real contest > 3. Whether you are making progress or not Feel free to not listen to William Lin's suggestions as he is not very good himself. ### Eric Wei > read problem editorials some time after thinking "i have no clue what i'm doing please send help" and before "if i stare at this problem for one minute longer i'm going to punch a hole in my computer", figure out the exact time yourself ### Nathan Wang My personal opinion is that it is okay to give up early when solving CP problems. Sometimes I spend as little as 15-20 minutes on a problem before reading the editorial or at least glancing at solution code. Other times I may spend significantly longer. CP editorials generally aren't the best (with the exception of USACO editorials, which are pretty good) so I often spend a lot of time trying to understand the solution even after "giving up" and reading the editorial. I think it's good enough to implement the code without having the editorial open. My justification for why I think it's okay to give up so early is as follows: - Getting frustrated and quitting CP for a week is worse than giving up - Whenever I feel like I'm really frustrated with a problem, I read the editorial - CP editorials are usually difficult to understand, so you will still have to spend a lot of time reading and understanding them - You learn a _lot_ by reading editorials - If you can solve a problem without reading the editorial, that means you probably could have solved the problem in-contest too, so you didn't actually learn that much. However, if you didn't know how to solve a problem and you read the editorial so now you do, then you've learned a lot more. - In other words, reading editorials is a _good_ thing, not a bad thing! Overall, I would just say to "give up" when you feel like giving up, whether that's in five hours or in 15 minutes :) ### Nathan Chen Read the editorial when you feel like you've stopped making progress; that could be from 1 to 5 hours. However, the most important part about reading the editorial is that you understand the topic and try to think about what similar problems look like. Being generally curious is a good way to practice algorithmic thinking.