Skip to main content

problem-difficulty

Difficulty and ELO in Competitive Programming​

This document explains how problem difficulties and ELO ratings are categorized and interpreted in the context of competitive programming.


Understanding Difficulty Levels​

Problems on the platform are categorized into three difficulty levels based on their assigned ELO rating:

  1. Easy:

    • ELO Range: Less than 1000
    • Description: Problems in this category are suitable for beginners or for warming up. They typically involve straightforward logic or fundamental algorithms.
  2. Medium:

    • ELO Range: Between 1000 and 2000 (inclusive of 1000 but less than 2000)
    • Description: Medium problems require a solid understanding of programming concepts and algorithms. They often involve multiple steps or more complex problem-solving techniques.
  3. Hard:

    • ELO Range: 2000 and above
    • Description: Hard problems are designed to challenge experienced programmers. They demand a deep understanding of algorithms, data structures, and efficient problem-solving strategies.

How ELO Works​

ELO is a rating system that adjusts dynamically based on performance. The following factors influence the ELO of a user:

  1. Winning or Solving Problems:

    • If a user solves a problem with a higher difficulty than their current ELO, their rating increases significantly.
    • Solving easier problems contributes less to ELO growth.
  2. Failing to Solve Problems:

    • If a user fails to solve a problem below their current ELO, their rating decreases.
    • The penalty is smaller for failing to solve harder problems.
  3. Matchups in Competitions:

    • In a competitive coding environment, ELO adjustments depend on relative performance against other participants.

Translating ELO to Difficulty​

ELO RatingDifficulty LevelDescription
< 1000EasySuitable for beginners or simple practice.
1000 - 1999MediumRequires intermediate-level problem-solving.
≥ 2000HardChallenges experienced programmers deeply.

Example Use Case​

  • ELO 850: The user will primarily encounter problems categorized as "Easy."
  • ELO 1500: The user is likely solving "Medium" problems and can start attempting "Hard" problems for growth.
  • ELO 2200: The user is among the top performers and typically solves "Hard" problems.

By understanding the relationship between ELO and problem difficulty, users can better assess their progress and choose challenges that match their skill level.