Leeking's blog

By Leeking, history, 4 weeks ago, In English

Proposal: Standardized Editorial URLs (/contest/xxxx/editorial) & API Endpoint Support

Finding tutorials for past Codeforces contests is currently far more inconsistent than it needs to be.
Depending on the contest author and round, editorials are scattered across different formats:

For anyone upsolving or building community tools (like browser extensions and problem trackers), this unpredictability causes constant friction.

The Proposal
Introduce a standardized URL alias and API endpoint for contest tutorials.

1. Standardized Web Route
Allow users to access any contest editorial via a single, predictable URL:
codeforces.com/contest/{contestId}/editorial

Practical Implementation & Settings:

  • Contest Manager Settings: In the contest dashboard, coordinators or authors simply enter the blogEntryId (or external link) designated as the official tutorial.
  • Problem-Level Linking & Discussion: Errichto suggested supporting dedicated editorial pages/posts for individual problems (e.g., codeforces.com/contest/1900/editorial/A), giving each problem its own comment section for focused discussion of alternative solutions and edge cases.
  • Multi-resource Support: If there are multiple tutorials (e.g., Official Text, Video Editorial, or Russian/Chinese translations), the main editorial page or alias can render quick tabs/links for each option at the top of the post.
  • Update the UI: Add a prominent "Editorial" button directly on the contest sidebar and on the problem page headers once the contest ends and the tutorial is published.

2. Native API Endpoint (contest.editorial)
Browser extensions, IDE plugins (like Competitive Companion or CPH), and platforms like Vjudge currently rely on fragile web scraping, or regex matching.
Adding an official endpoint, such as contest.editorial in the Codeforces API, would return structured data for a given contest ID:

// Request: https://codeforces.me/api/contest.editorial?contestId=1900
{
  "status": "OK",
  "result": {
    "contestId": 1900,
    "editorialBlogId": 45678,
    "editorialUrl": "https://codeforces.me/blog/entry/45678",
    "videoEditorialUrl": "https://youtube.com/watch?v=...",
    "problemAnchors": {
      "A": "https://codeforces.me/blog/entry/45678#problem-A",
      "B": "https://codeforces.me/blog/entry/45678#problem-B"
    }
  }
}

3. Retroactive Backfilling for Past Rounds
To handle older rounds without manual labor from Codeforces staff:

  • Coordinators, authors, or trusted high-rated users (e.g., Grandmasters) could be given permission to tag/link the historical blog entry ID for older rounds.
  • Alternatively, a simple community-driven backfill tool or PR system could link historical contest IDs to their existing blog entries.

I believe this is a real upgrade. Codeforces needs care and this is great.
A suggestion you may find useful here MikeMirzayanov KAN

Full text and comments »

  • Vote: I like it
  • +127
  • Vote: I do not like it

By Leeking, history, 7 weeks ago, In English

The last rollback was so long ago that I’ve forgotten when it happened. I want expert so bad

Can we get one soon please MikeMirzayanov KAN

Full text and comments »

  • Vote: I like it
  • +43
  • Vote: I do not like it

By Leeking, history, 4 months ago, In English

Hello Codeforces!

As many of you noticed, recent API changes broke several extensions, including the popular cf-getrating. Since the original creator seems to be inactive (no response to PRs or emails), I have forked and fixed the extension so we can all keep using this functionality.

What is LeekCF-Rating (cf-getrating)

For those unfamiliar, this extension allows you to see the difficulty rating of a problem while keeping problem tags hidden.
Why??: Solve problems 100% on your own. Tags often act as spoilers (e.g., seeing "Dynamic Programming" tells you exactly how to approach the problem)

Check Images

Installation Links:
- Chrome Web Store
- Firefox Addons Store
- GitHub Repository on My Account (Open source for transparency)

If you get a warning from Chrome read this.

Quick Note regarding Chrome Security

I kept the core logic identical to the original but updated the API call methods, icons, and readme to ensure it complies with Store policies and functions with the new Codeforces API changes (So it doesn't mark it up as a copycat).
Feel free to leave suggestions, report issues, or submit a PR on GitHub. Cya on the next blog

icon

Full text and comments »

  • Vote: I like it
  • +20
  • Vote: I do not like it

By Leeking, history, 4 months ago, In English

Almost around 12 rated contests since the last rollback, are we getting one soon? KAN

Full text and comments »

  • Vote: I like it
  • +55
  • Vote: I do not like it

By Leeking, history, 5 months ago, In English

Hi Codeforces team and MikeMirzayanov,

I know maintaining Codeforces is a huge amount of work, especially with the number of submissions and API requests every day, so thanks for all the effort.

I wanted to ask about a small issue with the API. I use it to hide problem tags while solving, so I can try problems completely on my own. Recently, without the API working properly, I can’t reveal the tags with View tags, and I also can’t see the problem rating unless I enable Show tags for unsolved problems on the Problemset page.

Also, could Codeforces maybe support this natively? Ideally, there would be an option to show only the problem rating by default, while keeping the tags hidden behind a button like View tags.

I think this would be useful for people who want to choose problems by rating but avoid spoilers from tags. Thanks again for everything you do for the platform.

Hello

Full text and comments »

  • Vote: I like it
  • +43
  • Vote: I do not like it