MikeMirzayanov's blog

By MikeMirzayanov, 7 days ago, In English

Hello Codeforces!

There is something new for you. It seems that now it will be easier to reuse problems from the archive for educational and other purposes.

As you know, problems from past Codeforces rounds can be added to mashups simply by their codes of the form like 1234D (contest ID + problem letter). I myself regularly used this when I taught at Saratov University — it was very convenient to prepare trainings: problems have expected complexity and topics, there are Russian and English statements, you can see the analysis and many solutions. Because of hacks and uphacks, problems in the archive usually have strong tests. Almost all of them are well-prepared. In addition, with the help of user lists, you can easily pick up problems for a group of students that they did not solve.

But there was also an issue: the problems in such trainings were easily googled. And if the majority of adult participants could cope with the temptation to spy on the solution or tests, then beginners sometimes acted dishonestly. I received several requests to come up with something with this flaw. One of the most recent such requests was from Daniel Darooha Sleator (https://en.wikipedia.org/wiki/Daniel_Sleator). Thanks, Danny!

So the work seems to be complete. Meet a new feature on Codeforces: now you can rewrite statements for problems in mashups, completely replacing it with your own. More details about the capabilities of the new functionality:

  • a new icon-link appears in the problem list in mashups, by clicking on which there will be a form for creating/editing a new statement;
  • you can use the original text of the statement as a template when writing your own: be very careful — you must exactly repeat all the details of a statement so that problems do not formally differ;
  • this form compares the set of formulas in the original text and the new statement, and if they differ as sets, there will be a corresponding detailed warning;
  • you can specify your own tests from a statement (examples) — here you also need to be very careful so that they are formally correct;
  • if you added examples, then solutions will be judged on them first, and only after on official tests;
  • you can upload your own image files and use them in statements;
  • there is a setting to temporarily disable the use of the new statement (for example, if it is still under development).

Considering that there are already more than 6500 problems in the archive, an excellent perspective opens up for organizing trainings and educational sessions.

I hope this innovation will be useful. Write in the comments what can be improved and/or corrected.

M.

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

»
7 days ago, # |
  Vote: I like it +10 Vote: I do not like it

Wow ! that seems great feature :)

»
7 days ago, # |
  Vote: I like it 0 Vote: I do not like it

GREAT idea!

»
7 days ago, # |
  Vote: I like it +207 Vote: I do not like it

Wow, this will be so useful for conducting any trainings, etc.

Thank you so much!

»
7 days ago, # |
  Vote: I like it +14 Vote: I do not like it

A new great feature appeared :)

»
7 days ago, # |
  Vote: I like it +3 Vote: I do not like it

Seems to be an amazing and powerful feature for coaches. Thank you!

»
7 days ago, # |
Rev. 2   Vote: I like it +4 Vote: I do not like it

sound like a good plan!

»
7 days ago, # |
  Vote: I like it +2 Vote: I do not like it

It is a great idea !

»
7 days ago, # |
  Vote: I like it 0 Vote: I do not like it

Just simple WOW

»
7 days ago, # |
  Vote: I like it 0 Vote: I do not like it

Due to non-availability of test cases I had to previously hold mashups taking all the details from Atcoder and it's test cases while now I can simply change the statement of previous asked questions in CF. Thank you guys for this.

  • »
    »
    4 days ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    MikeMirzayanov I recently used this feature and want to suggest some changes. If the previous statement was written in LATEX we are not able to edit its parts containing variable for example {$a_1} can't be changed to {$x_1} neither be the notes can be removed if there are previously and I can't add new explanation to the examples. Should I upload the errors shown ?

»
7 days ago, # |
  Vote: I like it 0 Vote: I do not like it

Wow,This is amazing.

»
7 days ago, # |
  Vote: I like it 0 Vote: I do not like it

Thanks, I think this will be very useful! As a suggestion, I think it would be very nice if you could add the clarifications regarding a problem after adding it to the contest. Sometimes it's boring to copy it or I forget to copy it.

»
7 days ago, # |
  Vote: I like it +48 Vote: I do not like it

you can specify your own tests from a statement (examples) — here you also need to be very careful so that they are formally correct;

Is input validator ran on my own test? (also output checker?)

  • »
    »
    7 days ago, # ^ |
      Vote: I like it +55 Vote: I do not like it

    Yes, during a judgment. So I recommend submitting a solution after a statement rewritten.

»
7 days ago, # |
  Vote: I like it 0 Vote: I do not like it

You are the besttt

»
7 days ago, # |
  Vote: I like it 0 Vote: I do not like it

Thank you so much for this great feature.

»
7 days ago, # |
  Vote: I like it +17 Vote: I do not like it

Really cool feature. Combined with the new streams feature, streamers can (ask a friend to) create mashups for people to solve and then stream it later. I think these two features combined will work really good.

»
7 days ago, # |
  Vote: I like it 0 Vote: I do not like it

It will be very helpful for us to analyze a problem according to our self modification

»
7 days ago, # |
  Vote: I like it +36 Vote: I do not like it

Hi. I usually use mashup contest for practice, but when I managed to solve a problem, I have to resubmit my code in order to have it recorded and mark as solved. It would be great if we can have a feature that push our code in mashups directly to problemset.

»
7 days ago, # |
  Vote: I like it +32 Vote: I do not like it

This is actually cool! For one thing, a mashup can now have a consistent theme across each problem now :D

»
6 days ago, # |
  Vote: I like it +5 Vote: I do not like it

Nice, this will be very useful for conducting trainings.

Thank MikeMirzayanov and Codeforces !!!

»
6 days ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

Please create an API for retrieving question data like problem statements and test cases(sample). Also, POST requests for code submissions. Please...

And a big thanks for this feature, this would definitely help.

»
6 days ago, # |
Rev. 2   Vote: I like it -31 Vote: I do not like it

Задачу можно гуглить с помощью тестов) ЛоЛ

  • »
    »
    29 hours ago, # ^ |
      Vote: I like it -8 Vote: I do not like it

    В статье английским по белому написано, что тесты тоже можно подгрузить свои, и тогда ты уже ничего не нагуглишь. Разве что по латеховым формулам. Если ты не смог это в статье вычитать, иди учи английский.

»
6 days ago, # |
  Vote: I like it 0 Vote: I do not like it

Not only this is great feature on itself, but at the same time helps coaches to bring problems to students on their national language! I have been tempted to make contests with old codeforces problems, but biggest problem was language barrier; some didn't felt confident in their english skills, or I didn't like wording or how imprecise some wording felt!

This will be huge boost, and next logical step might be to allow "translator rights" so problems can be available to all in their nativ language! THANK YOU MIKE! <3

»
6 days ago, # |
  Vote: I like it 0 Vote: I do not like it

Also, and MikeMirzayanov please correct me if I'm wrong, correcting statement like this will instantly be updated for contestants! So finally, no more waiting on Polygon to finally update statement, sometimes as long as 5min (i know that's actually short, but still...), so really happy for that too!

»
28 hours ago, # |
Rev. 2   Vote: I like it +10 Vote: I do not like it

Well done. Looks familiar.