If you wanna reach expert you have to
- pass specialist (obviously)
- know some topics
- get good perfs
Now a lot of people think "if i can get expert perfs i can become a expert" and your wrong. Expert perf best means that your worse than expert. Aim to always get a higher level than you already are so im finna be aiming for master next (bit of a stretch this is my cap).
Now how do u get good tho. Solve problems and listen to twice ofc (do u get the reference). But just solving bum ahh problems that are 1600 won't get you to specialist. If you wanna get to specialist u have to at least be solving 2000s imo cus then youll at least be able to solve 1600-2000 in contest and hopefully get good perf.
And for learning topics just learn them as you go. Look at the solution and if u dont understand the topic from there look at usaco guide or search it up online its not that hard.
Also don't forget to peel the leaves and do the derivative and binary search strat to solve dodecaseptic polynomials









of course man, don't even think about expert without AK-ing IOI first, absolute minimum. btw for people who are actually wondering, I would regularly struggle on 1600/1700 problems when I hit expert. It is all about consistency and learning from your practice. if you are solving a problem and it takes you time to solve and understand the idea behind it, that means you are learning and improving. I knew (and still know) 0 complex data structures or algorithms. dijkstra is the only "hard" algorithm I know, and I used it once ever in a contest when I was already expert.