https://shahriar76.medium.com/competitive-programming-beginners-guideline-for-learning-topics-step-by-step-a4dcd478c15f