Hello, Codeforces!
Only a couple of days remain until 2025. To wrap up the year, I'm bringing an update — I hope you'll find it useful.
Now, you can automatically find and add random problems for your mashup based on a range of criteria and restrictions. The problems are sourced from the archive, and unusual problems are automatically excluded.
So, click the "Add random problems" link under the problem list and proceed to the addition form.
Here's what you can do:
- Exclude problems that registered mashup participants have solved/attempted/authored (a problem will be excluded if at least one registered participant is familiar with it),
- If the mashup belongs to a group (e.g., your training group), exclude all problems from other contests in that group,
- Exclude problems with subtasks — such problems are often interconnected or reference each other,
- Simply specify a list of handles or user lists for whom familiar problems should be excluded,
- And finally, the most advanced option: in the "Problem Requirements" field, you can specify requirements for the problems to be added in a special format.
The "Problem Requirements" field describes the number and properties of the problems you want to find. By clicking the question mark icon, you'll see the following explanatory text.
Enter one or more lines. Each line specifies requirements for a single problem. A line must start with the Latin letter p
, followed by a space, and then additional parameters can be specified:
- Short problem name (its letter in the contest);
- Problem difficulty requirements (e.g.,
ratings:1000-1200
,ratings:2000
,ratings:3000-
, orratings:-1000
: leaving the number on the left or right of the hyphen empty means the corresponding boundary is not set); - Tags (use
tags:
and provide a comma-separated list of tags, e.g.,tags:dp, binary search, brute force
): a problem containing at least one tag from the list will be selected.
Examples of requirement lines:
"p"
: any problem, the letter in the contest will be assigned automatically;"p F"
: any problem assigned the letterF
;"p ratings:2000-2400"
: a problem with a difficulty level between 2000 and 2400, with the contest letter assigned automatically;"p D ratings:-1200 tags:greedy,dp"
: a problem with a difficulty level of no more than 1200, containing the tagdp
orgreedy
(or both), assigned the letterD
.
When you click the "Find Problems" button, you'll be presented with a list of problems to add. You can press the button repeatedly to generate different lists. In this list, you can mark the problems you like and finally add them to your mashup.
Note that next to the "Find Problems" button, after pressing it, additional statistics will be displayed. These can help you navigate the ratings of available problems under the specified restrictions.
I hope this makes finding problems for your training sessions and competitions easier.
Is there an option to exclude certain tags of problems too?
That will be great!
Also could we have a filter, to select problems by their letters and divisions. For example, generate a mashup of Div2 B's or just a
filter problems by letter
feature on the problemset page.This is a $$$legendary$$$ update!
.. and promotion
this is a legendary,epic and unique update
Nice update!!!!
good update!!!!!!!!!!
super update
great news!!!!
What type of problems are deemed "unusual"?
Something like April Fools contests or Kotlin Heroes probably.
A very cool New Year's update
This is a common/unusual/rare/epic/legendary/mythic/ultra/super/unique update.
is there a way to filter old problems? i think this is very important
second this @Mike, old problem styles are very different. Maybe a filter for the contest number/problem-id should do the trick:
p contest_id>=1542
Thanks. We've implemented the "exclude problems created before" option.
Thanks! How to use it? Like what's the keyword, an example would be great!
Edit: My bad, Got it.
superb update
this is rare,epic ultra super update
I no longer need a discord bot to give me training problems, great news
Finally
Awesome Feature, The problem requirement field is great now!
Can you add multiple random problems at the same time?
Where can we access this update
Woah, Love this platform!
love it !! this will be very useful
Really Good Feature for practicing, eagerly waiting for using this.
Can we exclude some certain contest problems like div3, div4 ? Because they are overrated mostly.
good
Bro just killed my CLI Tool. Seriously though, this is a better solution GG!
Nice addition to codeforces!
Amazing feature!
Meanwhile, I feel like a clown because I coded the same thing 2 days ago.
best feature till date
this is a mythic TOURIST update!
Request for a filter of "exclude problems solved by users:". MikeMirzayanov
W
where we can access this feature? like which section on the website?
I guess it will be launched on New Year.
Edit: I am sorry, it is present in Mashup section.
This feature is only for mushup, you can access it through:
GYM -> MUSHUP -> create a new mushup -> click the "Add random problems" under the problem list
(seems unfriendly for those who are unfamiliar with MUSHUP? (Including me))
Request for a filter of "problems between date X and Y"
I think having some kind of filters on:
Might be a good idea because old problems aren't targeted by a lot of people also sometimes people don't wanna ruin gyms, or target their practice on div.2/1 problems
I made a list of users to exclude their solved problems , including my Handle , There is 2 solved problems by me of 5 problems
I solved these problems in the problem set not private contest :( Mash id : 576921
So..Is this a problem or I made something wrong ? I put name of user List
Can someone please tell me how do I get this page? I am having difficulty finding it.
GYM -> MUSHUP -> create a new mushup -> click the "Add random problems" under the problem list
i still can't see can you attach a ss
me too
Step 1:- Open Codeforces
Step 2:- Click on GYM on top.
Step 3:- Click on MASHUPS.
Step 4:- Click on Create new mashup
Step 5:- Write Name of your Mashup and Duration. I gave Name as Hi and duration 30 min.
Step 6:- Scroll down and Click on Create Mashup Contest.
Step 7:- Click on Add random problems.
Finally, here you goo...
i don't have the "create a new mashup" button
take part in contest's, then you will
Is there a way to hide the tags of randomly selected problems to avoid spoilers?
nice update :) , just yesterday I was hoping we had something like this!!
I think an option could be added so that those problems selected by the user could be sorted chronologically.
Thank you so much! Will there be an api for random problem under certain restrictions?
can there be a feature to hide the tags when searching for random problems?
This is awsome new year present by codeforces. Thanx codeforces team!!
Maybe add option for Excluding problems from $$$Div$$$ $$$\ge$$$ $$$X$$$ , because div3-div4 problems are inflated
A great improvement!
yay i love it!
Thanks!
Please also make it easier to filter div1 problems. Maybe it could be a problem tag? It would be a really amazing feature for the problemset page.
Currently, even trying to do this manually using the API seems to require multiple API calls and non-trivial logic. I've tried those ideas at some point. Are there any better ways?
Fetch problemset and contest list, match each problemset problem to a contest and then parse the contest name and see if it contains
Div. 1
orglobal round
orgood bye
orhello
or ...Fetch the rating changes of top ~30 people and assume that at least one of them has participated in every div1 contest. So the union of contest ids from their rating changes is close to a complete list of div1 contests
This is a really useful update!
This might sounds unrelated, but what about the rating deflation ?. I mean like problem with rating 1600 in 2019-ish is way easier ( at least for me ) than 2024's one
Luogu also has this function. It's really useful. Codeforces is being better and better :)
How can I exclude interactive problem?
I've attempted to do a similar version to this earlier as a small go-lang learning project here.
While implementing this, I encountered the following limitations:
MikeMirzayanov, could you please touch on these aspects and clarify if the new tool simply resolves those limitations?
— I hope you'll find it useful.
Definitely do !
HAPPY NEW YEAR !!!
Update dark theme pls sir<3
Thanks for the update!
Happy New Year!
this is legendary update and promotion
Nice update!!
Happy new year