Skip to content

Contest Scoring

Your contest score is the sum of your individual challenge scores. Each challenge is scored based on how quickly you solve it, its difficulty, and any penalties you accumulate.

Per-Challenge Score

baseScore = ((timeLimit - timeTaken) / timeLimit) * difficultyWeight + difficultyWeight
aiPenalty = max(0, 1 - 0.03 * aiPrompts)          // -3% per AI prompt
submitPenalty = max(0, 1 - 0.05 * failedAttempts)  // -5% per failed submit

challengeScore = baseScore * aiPenalty * submitPenalty
  • If timeTaken <= 0 or timeTaken > timeLimit, the score is 0 (challenge not completed).
  • The baseScore ranges from difficultyWeight (used the entire time limit) to 2 * difficultyWeight (instant solve).
  • Each AI prompt reduces your score by 3%.
  • Each failed submission reduces your score by 5%.

Per-User Score

Your total contest score is simply the sum of all your challenge scores:

userScore = sum(challengeScore for each challenge)

Rating Update (Elo)

After the contest ends, your rating is updated using an Elo-based system:

  1. Scores are normalized to [0, 1] across all participants.
  2. An expected score is calculated per the Elo formula:
    expectedScore = 1 / (1 + 10^((otherRating - myRating) / 400))
  3. Your new rating is:
    newRating = round(currentRating + 32 * (actualScore - expectedScore))
  4. The minimum rating is clamped to 100. The default starting rating is 1500.