Preparation Resources

Books, courses, problem archives, and practice strategies to help you climb the ranks.

Essential Books

The reading that every serious competitor should cover.

CLRS — Introduction to Algorithms

The definitive algorithms textbook. Every algorithm you need, rigorously explained with proofs and exercises.

  • Covers sorting, graph, DP, greedy, and more
  • University-level depth
  • Best used as a reference alongside practice

Competitive Programming (Halim & Halim)

A hands-on guide focused specifically on ICPC and programming contest preparation.

  • Problem solving paradigms
  • Implementation templates
  • Companion UVa problem set

Competitive Programmer's Handbook (Laaksonen)

Free, concise, and practical. Covers modern CP topics including segment trees, flows, and game theory.

  • Available as free PDF
  • Clean C++ examples
  • Great for quick topic review

The Art of Computer Programming (Knuth)

The legendary series. Deep mathematical treatment of algorithms — for when you want to go beyond contest-level.

  • In-depth combinatorial analysis
  • Challenging exercises
  • Volume 1–4A available

Online Practice & Archives

Where to find problems and track your improvement.

CSES Problem Set

A curated set of 300 problems covering every standard CP topic. Often used as a structured learning path.

Structured All Levels

USACO Guide

Free, community-driven training resource organized by topic. Includes editorial explanations and solution walkthroughs.

Modules Bronze to Platinum

Codeforces Problemset

Over 8,000 problems tagged by topic and difficulty. Filter by rating, tag, or contest for targeted practice.

Archive 800–3500 rating

AtCoder Problems

Community site that tracks your AtCoder progress, suggests problems at your level, and visualizes rating trends.

Tracker All Levels

GeeksforGeeks

Massive article and problem archive. Good for quick topic lookup and interview-focused practice.

Articles Beginner–Intermediate

SPOJ

One of the oldest online judges with a vast multilingual problem archive. Great for exploring obscure topics.

Archive All Levels

Practice Strategy

A practical approach to improving your competitive programming skills.

1

Upsolve Every Contest

After each contest, solve the problems you missed. This is where most improvement happens.

2

Target Weak Topics

Sort problems by tag on Codeforces or AtCoder and drill into the areas dragging your rating down.

3

Review Editorials

Reading an editorial after struggling is not giving up — it's learning the next technique in your toolbox.

4

Simulate Real Conditions

Time yourself. Use the same editor and workflow you use in rated contests. Build muscle memory.

5

Maintain a Code Library

Keep clean, reusable implementations of common algorithms — useful for team contests like ICPC.

6

Teach Others

Write editorials or explain solutions to peers. Teaching forces you to truly understand the material.