Mathematics, Competitive Programming, Philosophy, Discrete Mathematics.
analysis. The first part assumes almost no background and explains all the details carefully. In the second part, we use the result from the first part as a lemma, combining it with some sophisticated data structures to solve the more complex target problem. The second part assumes some familiarity