Since I have limited time for practice due to school , I am constantly uncertain about how I should practice. The ways I see are
1.Keep solving varied and general problems from codeforces , spoj , codechef etc. , following a roadmap.
2.Solve problems from specific topics and work my way up from simple to complex topics.
3.Or work somewhat how USACO training works and do interesting problems that increase in difficulty , while still belonging to relevant topics.
I should state that I am still in the early stages of practice and my current focus is on qualifying the national olympiad of my country (India) so I cannot move to advanced topics. So could anyone suggest what path I should take or suggest an alternative path to maximise my performance.
And a big thanks for helping out.