https://www.cesarsotovalero.net/blog/a-starting-guide-to-be-a-good-competitive-programmer.html