Where to submit code, and what each judge is actually good for.
The main judges
| Judge | Best for | Style |
|---|---|---|
| Codeforces | rating, weekly contests, the largest problem archive | short, clever, 2h contests |
| AtCoder | clean statements, excellent editorials, ABC/ARC/AGC ladder | mathematically tidy |
| CSES Problem Set | learning the standard techniques in order | 300 curated classics |
| CodeChef | long challenges, Indian community | mix of short and 10-day |
| LeetCode | interviews, data-structure drills | small constraints |
| SPOJ | old classics, unusual problems | dated but deep archive |
| Timus | rigorous, older ICPC-style problems | terse |
| HackerRank / HackerEarth | beginner ladders, hiring contests | gentler |
| Kattis | ICPC regional and world final problems | ICPC format |
| DMOJ / oj.uz | IOI and olympiad problems | national-olympiad archives |
| Library Checker | verifying library implementations against reference tests | pure implementation |
| Project Euler | number theory and math, no time limit | math-first |
Recommended by goal
| Goal | Route |
|---|---|
| Learn the standard toolkit | CSES from top to bottom — it maps almost exactly onto this wiki |
| Raise a rating | Codeforces Div 3 → Div 2, upsolving every contest |
| Mathematical maturity | AtCoder ABC → ARC, plus Project Euler |
| ICPC preparation | Kattis + old regional sets, in 3-person 5-hour sessions |
| IOI preparation | oj.uz, DMOJ, and the official IOI archive |
| Interviews | LeetCode, but only after CSES — the techniques transfer downward |
| Testing a library | Library Checker, for exact reference outputs |
Reading a verdict
| Verdict | Usual cause |
|---|---|
| WA | wrong algorithm, an unhandled edge case, or overflow |
| TLE | wrong complexity, or a correct complexity with a bad constant |
| MLE | recursion depth, or an over-large array |
| RE | out-of-bounds, division by zero, stack overflow, or assert |
| Presentation Error | trailing whitespace or line endings (rare on modern judges) |
| Idleness Limit Exceeded | an interactive problem without a flush |
TLE with the right complexity
Before rewriting the algorithm, check the constant:
endlinstead of'\n', unsynced I/O,mapwhereunordered_mapor sorting would do, passing containers by value, or%in an inner loop. See Optimization Tricks.
Judge-specific quirks
- Codeforces — 64-bit is
long long;%I64dis long obsolete, usecin/coutor%lld. Hacking is available in Div 3 and educational rounds. - AtCoder — a fixed set of language versions; the ACL (AtCoder Library) is available and worth reading.
- CSES — tests are strong and there are no editorials, which is the point.
- Kattis — reads until EOF in many problems; multiple test cases are common.
- SPOJ — old compilers; some C++17 features are missing.
Practising well
- Upsolve. The problems you failed during a contest are worth more than new easy ones.
- Read editorials only after a real attempt — an hour of genuine thought, then read.
- Solve slightly above your rating — around +200 on Codeforces.
- Keep a log of what technique each failure needed; the pattern that emerges is your study list.
- Re-implement from memory anything you had to look up.
See also: Problem Sets · Learning Roadmap · Competitions