Блог пользователя MikeMirzayanov

Автор MikeMirzayanov, история, 6 дней назад, По-русски

Привет, Codeforces!

Осталась всего пара дней до 2025 года. Напоследок в этом году залечу с обновлением — надеюсь, оно окажется полезным.

Теперь в свой мэшап вы можете автоматически подбирать случайные задачи по ряду критериев и ограничений. Задачи берутся из архива, необычные задачи исключаются автоматически.

Итак, нажимайте ссылку "Добавить случайные задачи" под списком задач и переходите к форме добавления.

Здесь можно:

  • исключить задачи, которые сдавали/пытались сдать/создали как авторы зарегистрированные на мэшап участники (чтобы задача была исключена, достаточно одного зарегистрированного участника, который её может знать),
  • если мэшап находится в группе (например, это группа ваших тренировок), то исключить все задачи из других контестов этой группы,
  • исключить задачи с подзадачами — такие задачи часто как-то связаны между собой или ссылаются друг на друга,
  • просто указать список хэндлов или списков пользователей, для которых нужно убрать известные им задачи,
  • и, наконец, самое хитрое: в поле "параметры задач" можно указать в специальном формате требования к добавляемым задачам.

Поле "параметры задач" описывает количество и свойства задач, которые нужно найти. По клику на знак вопроса появится следующий поясняющий текст.

Введите одну или несколько строк. Каждая строка задаёт требования для одной задачи. Строка должна начинаться с латинской буквы p, после чего через пробел можно указать дополнительные параметры:

  • Короткое название задачи (её букву в контесте);
  • Требования к сложности задачи (например, ratings:1000-1200, ratings:2000, ratings:3000- или ratings:-1000 — отсутствие числа слева или справа от знака минус обозначает отсутствие соответствующей границы);
  • Теги (используйте tags: и укажите список тегов через запятую, например, tags:dp, binary search, brute force) — будет выбрана задача, содержащая хотя бы один тег из списка. Названия тегов можно писать и на русском языке.

Примеры строк с требованиями:

  • "p" — произвольная задача, буква в контесте будет назначена автоматически;
  • "p F" — произвольная задача, которой назначается буква F;
  • "p ratings:2000-2400" — задача с уровнем сложности от 2000 до 2400, буква в контесте назначается автоматически;
  • "p D ratings:-1200 tags:жадные алгоритмы,дп" — задача с уровнем сложности не более 1200, имеющая тег жадные алгоритмы или дп (или оба), которой назначается буква D.

При нажатии кнопки "Подобрать задачи" вам будет предложен список задач для добавления. Кнопку можно нажимать повторно для генерации другого списка. В этом списке вы можете отметить понравившиеся задачи и, наконец, добавить их в мэшап.

Обратите внимание, что рядом с кнопкой "Подобрать задачи" после нажатия на неё будет выведена дополнительная статистика, которая может помочь вам сориентироваться по рейтингам доступных задач в условиях заданных ограничений.

Надеюсь, теперь подбирать задачи для внутренних тренировок и соревнований станет проще.

  • Проголосовать: нравится
  • +2564
  • Проголосовать: не нравится

»
6 дней назад, # |
  Проголосовать: нравится +28 Проголосовать: не нравится

Is there an option to exclude certain tags of problems too?

  • »
    »
    4 дня назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится

    That will be great!

  • »
    »
    4 дня назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    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.

»
6 дней назад, # |
  Проголосовать: нравится +54 Проголосовать: не нравится

This is a $$$legendary$$$ update!

»
6 дней назад, # |
Rev. 2   Проголосовать: нравится +1 Проголосовать: не нравится

this is a legendary,epic and unique update

»
6 дней назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Nice update!!!!

»
6 дней назад, # |
  Проголосовать: нравится -48 Проголосовать: не нравится

много текста лень читать

»
6 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

good update!!!!!!!!!!

»
6 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Звучит круто, думаю действительно это облегчит подборку задач. С наступающим всех!

»
6 дней назад, # |
  Проголосовать: нравится -8 Проголосовать: не нравится

super update

»
6 дней назад, # |
  Проголосовать: нравится -6 Проголосовать: не нравится

great news!!

»
6 дней назад, # |
  Проголосовать: нравится -14 Проголосовать: не нравится

great news!!!!

»
6 дней назад, # |
  Проголосовать: нравится +22 Проголосовать: не нравится

unusual problems are automatically excluded.

What type of problems are deemed "unusual"?

»
6 дней назад, # |
  Проголосовать: нравится -7 Проголосовать: не нравится

A very cool New Year's update

»
6 дней назад, # |
  Проголосовать: нравится +9 Проголосовать: не нравится

This is a common/unusual/rare/epic/legendary/mythic/ultra/super/unique update.

»
6 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Cool update!

»
6 дней назад, # |
  Проголосовать: нравится +32 Проголосовать: не нравится

is there a way to filter old problems? i think this is very important

  • »
    »
    6 дней назад, # ^ |
      Проголосовать: нравится +66 Проголосовать: не нравится

    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

»
6 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

superb update

»
6 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

The best update ever!

»
6 дней назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

this is rare,epic ultra super update

»
6 дней назад, # |
  Проголосовать: нравится -7 Проголосовать: не нравится

I no longer need a discord bot to give me training problems, great news

»
6 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Finally

»
6 дней назад, # |
  Проголосовать: нравится -8 Проголосовать: не нравится

Finally

»
6 дней назад, # |
  Проголосовать: нравится -8 Проголосовать: не нравится

Awesome Feature, The problem requirement field is great now!

»
6 дней назад, # |
  Проголосовать: нравится +10 Проголосовать: не нравится

Can you add multiple random problems at the same time?

»
6 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

codeforce is the best site. Happy New Year

»
6 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Where can we access this update

»
6 дней назад, # |
  Проголосовать: нравится -8 Проголосовать: не нравится

Woah, Love this platform!

»
6 дней назад, # |
  Проголосовать: нравится -8 Проголосовать: не нравится

love it !! this will be very useful

»
6 дней назад, # |
  Проголосовать: нравится +43 Проголосовать: не нравится

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.

»
6 дней назад, # |
  Проголосовать: нравится -8 Проголосовать: не нравится

good

»
6 дней назад, # |
  Проголосовать: нравится +9 Проголосовать: не нравится

Bro just killed my CLI Tool. Seriously though, this is a better solution GG!

»
6 дней назад, # |
Rev. 2   Проголосовать: нравится -22 Проголосовать: не нравится

Nice addition to codeforces!

»
6 дней назад, # |
  Проголосовать: нравится +9 Проголосовать: не нравится

Amazing feature!
Meanwhile, I feel like a clown because I coded the same thing 2 days ago.

Spoiler
»
6 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

best feature till date

»
6 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

this is a mythic TOURIST update!

»
6 дней назад, # |
  Проголосовать: нравится -17 Проголосовать: не нравится

Request for a filter of "exclude problems solved by users:". MikeMirzayanov

»
6 дней назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

А будет ли когда-нибудь тёмная тема?

  • »
    »
    5 дней назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    уже пора смириться, что ни тёмной темы, ни апдейта фронта, ни даже новых иконок не будет никогда

»
6 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

W

»
6 дней назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится

where we can access this feature? like which section on the website?

»
6 дней назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

Request for a filter of "problems between date X and Y"

»
6 дней назад, # |
  Проголосовать: нравится +39 Проголосовать: не нравится

I think having some kind of filters on:

  1. freshness of the problem either between contests X and Y or dates X and Y
  2. Divisions (1,2,3,Educations, ...etc) + Problem character (A,B,C,D)

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

»
5 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I made a list of users to exclude their solved problems, including myself, There is 4 problems of 7 I solved before

I solved these problems in the problem set not private contest :(

Mashup id : 576921 There is Two problems not in mashup Becaues I ignore problem at first ( 1742E "Scuza" , 1926C "Vlad and ...")

»
5 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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

»
5 дней назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Can someone please tell me how do I get this page? I am having difficulty finding it.

  • »
    »
    5 дней назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    GYM -> MUSHUP -> create a new mushup -> click the "Add random problems" under the problem list

»
5 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
»
5 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

very good!

»
5 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Is there a way to hide the tags of randomly selected problems to avoid spoilers?

»
5 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

nice update :) , just yesterday I was hoping we had something like this!!

»
5 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I think an option could be added so that those problems selected by the user could be sorted chronologically.

»
5 дней назад, # |
Rev. 2   Проголосовать: нравится +12 Проголосовать: не нравится

Thank you so much! Will there be an api for random problem under certain restrictions?

»
5 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Cool Update!

»
5 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

can there be a feature to hide the tags when searching for random problems?

»
5 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

hmnnn this is maybe sounds unrelated but would you also consider the deflation of the rating ? i mean like 2018's 1600-ish rated problem is way easier than the 2022/2023

»
5 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

This is awsome new year present by codeforces. Thanx codeforces team!!

»
5 дней назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

Maybe add option for Excluding problems from $$$Div$$$ $$$\ge$$$ $$$X$$$ , because div3-div4 problems are inflated

»
5 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

A great improvement!

»
5 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

It's really good, but I have to add it one by one again. It would be really awesome if there is a number that is how many the problems would be chosen so that we can find and add them add the same time instead of find problems too many times. Hopefully it's for next year though. Looking forward to new Year :)

»
5 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

yay i love it!

»
5 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

This update is fantastic! The ability to add random problems with customisable filters, like excluding familiar ones or setting specific requirements, makes mashup creation much more efficient. A great way to keep training sessions fresh and challenging!

»
4 дня назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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 or global round or good bye or hello or ...

    • (this gets extra confusing with some exceptions like VK Cup and Croc which may or may not be div1)
  • 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

»
4 дня назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

This is a really useful update!

»
4 дня назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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

»
4 дня назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Luogu also has this function. It's really useful. Codeforces is being better and better :)

»
4 дня назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

How can I exclude interactive problem?

»
4 дня назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

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:

  1. Problems solved for a user inside groups (or other mashups) weren't visible from the API.
  2. Gym problems were not included.
  3. Overlapping rounds (Div1-Div2) were a bit non-trivial to link (e.g., 1972 and 1967).

MikeMirzayanov, could you please touch on these aspects and clarify if the new tool simply resolves those limitations?

»
4 дня назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

— I hope you'll find it useful.

Definitely do !

»
4 дня назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

HAPPY NEW YEAR !!!

»
4 дня назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Update dark theme pls sir<3

»
4 дня назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Thanks for the update!

smth
»
4 дня назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

this is legendary update and promotion

»
4 дня назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Nice update!!

»
4 дня назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Happy new year

»
3 дня назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

please unblock my codeforces account "mohitydaviitb".

»
43 часа назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

how do we open this can anyone explain me? please

»
42 часа назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

happy new year

»
37 часов назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

А что делать,если я хочу добавить задачу 409H,но она добавляется без её главной фишки?

  • »
    »
    36 часов назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Это уже проблема самих мешапов, что задачи сдаются на всех языках. Как это поменять — хз

»
36 часов назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

А можно добавить задачу из Div3/edu раунда?

»
28 часов назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Maybe you can add a link to here from the "Add Random Problems" page?

Easy way to reference documentation when you need it.