Hmzaawy's blog

By Hmzaawy, history, 3 months ago, In English

Hello Codeforces!

We are excited to share a massive update for the Repovive extension. Our goal remains the same: to provide an all-in-one toolkit for Competitive Programmers. Whether you are upsolving, practicing, or competing, we want to make your life easier.

This update comes in two parts: features that are Live Now in the store, and a sneak peek at ground-breaking features Coming Soon (currently in review).

TLDR; Check the AI Coach Chrome Extension Here: Repovive Competitive Programming


Live Now: Multi-Model AI, Dark Mode & More

The latest version published to the store brings significant power-ups:

1. The Trinity of AI Coaches: ChatGPT + DeepSeek + Gemini

Why settle for one when you can have three? The AI Coach now supports ChatGPT and DeepSeek alongside the existing Gemini integration. - Stuck on a problem? Get hints, code explanations, or complexity analysis from your favorite LLM. - Switch between models seamlessly to get different perspectives on a solution.

2. Native Dark Mode (Codeforces & AtCoder)

Save your eyes during those late-night upsolving sessions. We've added a highly requested Dark Mode that works beautifully on both Codeforces and AtCoder. - Automatically injects a sleek dark theme. - Toggleable via the extension settings.

 Dark

 Dark

3. Private Group Support

Repovive AI Coach now works inside Private Groups!

(Note: Solution fetching for private groups is currently limited, but the editor and other tools are fully functional).

4. Code Editor Improvements

We've squashed annoying bugs related to language selection in the embedded editor. Your coding experience should be smoother than ever.


In Review (Coming Very Soon)

We have another update currently waiting for approval that introduces features you won't find anywhere else:

1. Live Rating Predictor

Predict your rating changes directly on the Codeforces standings page. No need to wait for the system update!

 Rating

2. Problem Rating Predictor (New!)

This is a game-changer. Ever practiced on Gym mashups or unrated problems and wondered "What rating is this?" Our new Problem Rating Predictor uses AI to estimate the difficulty rating of any problem, even if it doesn't have an official tag.

 Problem Rating


Install / Update

Get the latest version here: Repovive Competitive Programming

As always, we love your feedback. Let us know which AI model you find best for competitive programming!

Happy Coding!

  • Vote: I like it
  • -19
  • Vote: I do not like it

»
3 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by Hmzaawy (previous revision, new revision, compare).

»
3 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by Hmzaawy (previous revision, new revision, compare).

»
3 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by Hmzaawy (previous revision, new revision, compare).

»
3 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by Hmzaawy (previous revision, new revision, compare).

»
3 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by Hmzaawy (previous revision, new revision, compare).

»
3 months ago, hide # |
 
Vote: I like it +3 Vote: I do not like it

How will the Problem Rating Predictor estimate the ratings?

  • »
    »
    3 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    The Core Concept

    The system estimates how difficult a problem is by analyzing who solved it. The key insight: - If mostly high-rated users solve it → problem is easy - If mostly low-rated users solve it → problem is hard
    - If all users solve it → problem is trivial (rating = 0) - If no users solve it → problem is impossible (rating = 5000)


    The Algorithm

    Step 1: Gather Participant Data

    1. Fetch contest standings
    2. Extract all official contestants
    3. Get their ratings (from rating changes or the userInfo API)
    

    Step 2: Count Solvers vs Total

    solversRatings = [ratings of people who got > 0 points on this problem]
    allParticipantsRatings = [ratings of all contestants]
    S = number of solvers
    Total = total contestants
    

    Step 3: Binary Search for Problem Rating

    Find rating X such that:
      Expected_Solvers(X) ≈ Actual_Solvers
    

    The expected solvers formula: ``` For each participant with rating R: P(solves problem rated X) = 1 / (1 + 10^((X — R) / 400))

    Expected_Solvers = sum of all these probabilities ```

    Step 4: Binary Search Loop

    If Expected_Solvers > Actual_Solvers:
      Problem is too easy in our estimate → increase X
      
    If Expected_Solvers < Actual_Solvers:
      Problem is too hard in our estimate → decrease X
      
    Repeat 60 times (converges to exact answer)
    

    Example

    Say a problem had: - 50 total contestants - 30 people solved it - Average solver rating: 1800 - Average non-solver rating: 1500

    The algorithm asks: "At what rating would exactly 30 out of 50 users be expected to solve this?"

    Answer: ~1600 (roughly halfway between solver and non-solver average)


    Key Formula Deep Dive

    P(user with rating R solves problem rated X) = 1 / (1 + 10^((X-R)/400))
    
    Examples:
    - If X = R (equal): P = 1/(1+1) = 0.5 (50% chance)
    - If X = R+400: P = 1/(1+10) ≈ 0.09 (9% - problem is much harder)
    - If X = R-400: P = 1/(1+0.1) ≈ 0.91 (91% - problem is much easier)
    
    This means:
    - Every 400 rating points = 10x probability change
    - Algorithm fits the observed solve count to find the "crossover point."
    
»
3 months ago, hide # |
Rev. 2  
Vote: I like it +12 Vote: I do not like it

Firefox version please :D