When submitting a solution in C++, please select either C++14 (GCC 6-32) or C++17 (GCC 7-32) as your compiler. ×

Um_nik's blog

By Um_nik, history, 4 years ago, In English

Since antontrygubO_o has became CF coordinator he is trying hard to make rounds which meet his standards for quality and (more importantly) beauty. I think he is doing a great job.

For some time there is a very vocal group of people who dislike his view on things. I feel like it will be hard for Anton to maintain his work if he would think that majority of people doesn't approve.

But I don't really think that this is a majority. If you enjoy rounds prepared or coordinated by Anton, please comment here with some positive feedback.

#AdHocProblemsMatter

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

| Write comment?
»
4 years ago, # |
  Vote: I like it +357 Vote: I do not like it

antontrygubO_o I love your problems, please don't stop!

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +56 Vote: I do not like it

    We are all aware that antontrygubO_o is trying his best and I am thankful to him for these rounds and we were merely giving suggestions on how the rounds could be improved further and eventually be more balanced. But yeah It would be hard for him if he only saw negative feedbacks. So Thanks for these rounds antontrygubO_o

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

Rejecting 72 problems in a round also reflects his dedication. The problemset was great, I enjoyed solving a lot (Thanks to him and setters).

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +13 Vote: I do not like it

    He rejected 72 questions then gave us a question where we just had to print "1 " n times? I don't understand.

    question: https://codeforces.com/contest/1372/problem/A

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it +35 Vote: I do not like it

      I mean, the samples don't give away that printing 1 n times is a viable solution, so you still have to think a bit to realise that. I'll admit, it's not the most magical observation, but it's still a cute little puzzle for a div2A.

      • »
        »
        »
        »
        4 years ago, # ^ |
          Vote: I like it +14 Vote: I do not like it

        Yes it was decent question for D2A, but if he rejected 72 questions for "question quality", I don't see why is this question here. It feels like he was deliberately trying to have a adhoc question even if the probelm setters showed a good question but it was using some basic algo/ds. Just what I think ofc.

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
            Vote: I like it +10 Vote: I do not like it

          Well, firstly, he rejected only 12 proposals for Div2A problems according to the blog. 72 was the overall number of rejections.

          Secondly, we don't know what the questions were actually rejected for. Some could have been quality concerns, some could have been that the difficulty is not quite right, and some could be due to similarity with existing problems on the platform. It's even harder to make the claim that "he was deliberately trying to have a adhoc question" as we do not know whether the other rejected questions were adhoc, math or algo/ds.

          Lastly, question quality is really heavily a matter of personal preference. For example, I find this quite a cute little puzzle to solve as the first problem in a contest, which in my opinion makes it an excellent Div2A, but maybe someone else would think a problem such as 1228A - Distinct Digits is a nice Div2A (which I disagree with, but that's a different issue altogether). Therefore, maybe Anton (and perhaps the contest setters) thought that this problem was elegant enough or of high enough quality to be included in their problem set over all the other proposals.

          • »
            »
            »
            »
            »
            »
            4 years ago, # ^ |
              Vote: I like it +21 Vote: I do not like it

            I'd like to clear, when I say 72 questions were rejected, it means that their quality was lower than this question (relative to whichever question no. they were designed for), which seems unreal (atleast to me) as this question doesn't feel like a quality question for div2A at all.

            I don't know what is a "quality" question in his eyes, but in my eyes, this one definitely wasn't, and it's baffling to me that 72 question were lower quality than this (ofc we are talking in relative terms here, since this one made into contest while others didn't.)

            Now I'm not complaining, afterall I was able to do this question in 2 mins in the contest which was really motivating, but again, I just don't understand what is this "quality" he's looking for.

            He's a red coder, so he definitely has a better(way better) eye for that, but again, I don't understand what's this weird criterion.

            • »
              »
              »
              »
              »
              »
              »
              4 years ago, # ^ |
                Vote: I like it +2 Vote: I do not like it

              What feels like a quality question for D2A for you? If this doesn't feel like it, I am curious.

              • »
                »
                »
                »
                »
                »
                »
                »
                4 years ago, # ^ |
                  Vote: I like it +24 Vote: I do not like it

                You missed my point, this is definitely a decent div2a question, but I feel like after rejecting 12 questions, if you come up with this, I don't know what to feel about this, were the problem setters bad, the coordinator bad or what.

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
            Vote: I like it +14 Vote: I do not like it

          Please show me some algo/ds div2A.

          • »
            »
            »
            »
            »
            »
            4 years ago, # ^ |
            Rev. 2   Vote: I like it +3 Vote: I do not like it

            If you count edu round problems and are willing to stretch your definition of "algorithm" a bit, 1278A - Shuffle Hashing is one such example.

            Edit: it was also the only example I could find out of all of the Div2 only rounds I took part in as official contestant. Maybe I joined when CF was already transitioning away from classic problems in Div2.

          • »
            »
            »
            »
            »
            »
            4 years ago, # ^ |
              Vote: I like it +6 Vote: I do not like it

            I mentioned DSA related problems in my original argument, but I didn't just mean DSA problems, I've seen better, way better and well suited ad-hoc problems for div2A in this short amount of time I have spent on CF. I'm just perplexed that this question made it into contest while 72 other didn't.

»
4 years ago, # |
  Vote: I like it +129 Vote: I do not like it

When I VC old rounds, lots of times, majority of the problems are just copy-paste-from-library problems. I like the fact that anton's trying to avoid that and to increase the quality of the CF problems.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +46 Vote: I do not like it

    I have the same opinion. Old problems are less probable to be interesting compared to the newer ones due to contests like antontrygubO_o's.

»
4 years ago, # |
  Vote: I like it +137 Vote: I do not like it

antontrygubO_o I love your problems, please don't stop!

»
4 years ago, # |
  Vote: I like it +56 Vote: I do not like it

+1. Even though I objectively suck at his rounds– for example, -200 in GR9. I still maintain that the problems are very high quality, so I see no reason for this sudden backlash.

»
4 years ago, # |
  Vote: I like it +5 Vote: I do not like it

Anton is a geniosity tbh

»
4 years ago, # |
  Vote: I like it +49 Vote: I do not like it

antontrygubO_o should reject problems which are too similar to (/ just a reshuffle of) already existing problems. It shouldn't matter even if all the remaining problems turn out to be adhoc. Problems should force people to think in new directions, rather than just joining bits and pieces of old problems.

»
4 years ago, # |
  Vote: I like it +5 Vote: I do not like it

Yup, his contests are great. But I am afraid how long he would be able to keep that up. After so many rejections, a setter might want to propose to another coordinator next time.

»
4 years ago, # |
  Vote: I like it +7 Vote: I do not like it

AdHoc problems do matter when it comes to the way of thinking. I think antontrygubO_o's problem's are really good. I am no one to judge all but I really enjoy his problems.

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

I disagree. I don't feel satisfied if I solve a problem on paper and all I have to code is 5 lines (1371E2 - Asterism (Hard Version), 1365E - Maximum Subsequence Value). I miss the problems where you have to code a dp, to adapt some well known algorithm, etc.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it -69 Vote: I do not like it

    Is it Anton's fault if a setter doesn't propose a unique DP problem? Most DP problems I face are too similar to known ones, including many DPs in AGC.

    • »
      »
      »
      4 years ago, # ^ |
      Rev. 2   Vote: I like it +76 Vote: I do not like it

      I can't believe that in Global Round 9 there wasn't a single interesting non-adhoc problem proposal in the range [A, G]. It doesn't have to be a dp, I'm only saying that I would like some problem with a non-trivial implementation.

      • »
        »
        »
        »
        4 years ago, # ^ |
          Vote: I like it -44 Vote: I do not like it

        Problems which require more thinking, tend to have trivial implementation, as people already need quite a lot of time in thinking, so maybe it's not feasible to demand another 15+ minutes on coding. Copying old codes of suffix array, segment tree etc. dosn't require much implementation either, just the code gets bigger.

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
          Rev. 2   Vote: I like it +85 Vote: I do not like it

          In my opinion a good problem shouldn't require 1 hour of thinking and 5 minutes of implementation. Also, it shouldn't require some lengthy data structures like a suffix array. Some examples of problems that I consider very good:
          1307D - Cow and Fields It's a bfs + a nice sorting + prefix maximum, but it's not trivial to get the ideas. Also, writing a bfs requires as much time as copy-pasting and adapting it.
          83D - Numbers It's sqrt-decomposition + sieve of Erathostenes + inclusion-exclusion. Again, it's not easy to get the solution, writing the code is insightful but it doesn't require any lengthy implementation.

»
4 years ago, # |
  Vote: I like it +38 Vote: I do not like it

AtCoder-style problems/iq tests/ad hoc stuff/mathforces are fun, definitely need more of those.

»
4 years ago, # |
  Vote: I like it +245 Vote: I do not like it

The name of antontrygubO_o in an announcement blog post makes me happy. Keep going!

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

Quality problems like yours, are very hard to find these days! antontrygubO_o your rounds are very interesting and I enjoy up solving tricky problems. Thanks for ur hard work and please continue doing for the community! Best wishes ..

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

    What's the point of downvoting it. His problems are really interesting and I love solving them.

»
4 years ago, # |
  Vote: I like it +129 Vote: I do not like it

antontrygubO_o I love your problems, please don't stop!

#AdHocProblemsMatter

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

EVA vs UM_NIK,and it seems to me both are correct from their own perspective.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +127 Vote: I do not like it

    I don't want to win anything, I just want to publicly support Anton.

»
4 years ago, # |
  Vote: I like it +43 Vote: I do not like it

antontrygubO_o 's problems are fun to solve :)

»
4 years ago, # |
  Vote: I like it +43 Vote: I do not like it

I like most of those rounds, please make more of them!

»
4 years ago, # |
  Vote: I like it +348 Vote: I do not like it

I support antontrygubO_o as long as he doesn't write announcement blogs because then he would beat me in contribution.

on a serious note, rejecting tens of boring problems is good, kudos for that

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +79 Vote: I do not like it

    If you want to stay on the top,come up with a new contest.

  • »
    »
    4 years ago, # ^ |
    Rev. 2   Vote: I like it +117 Vote: I do not like it

    One of the things Errichto said on his stream a while back was that since Um_nik is so much more honest/unfiltered/critical than most people, if he says something good about someone, it might be a more valuable opinion than usual. I definitely think this is a good example of that.

    Also, I agree with pretty much everyone here, Anton's problems are very interesting and I enjoy them and the direction they seem to have shifted in. I also think Global Round 9 was quite nice despite having done poorly in it.

»
4 years ago, # |
  Vote: I like it +21 Vote: I do not like it

some positive feedback.

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

During the contest I couldn't solve his problems, But after seeing the editorial I feel WOW, these problems are so good.

»
4 years ago, # |
  Vote: I like it +230 Vote: I do not like it

From 0 to 100 real quick....

»
4 years ago, # |
  Vote: I like it +4 Vote: I do not like it

Thank you antontrygubO_o for making contests for us. #AdHocProblemsMatter

»
4 years ago, # |
  Vote: I like it +41 Vote: I do not like it

I support rotavirus

»
4 years ago, # |
  Vote: I like it +4 Vote: I do not like it

You are just irreplaceable!!! Keep Going!! antontrygubO_o

»
4 years ago, # |
  Vote: I like it +133 Vote: I do not like it

I like antontrygubO_o problems, but once Thanos said "Perfectly balanced as all thing should be", I feel that CF is missing this balance in the problems, I would prefer a bit of diversity in the problem set.

»
4 years ago, # |
  Vote: I like it +1 Vote: I do not like it

Good to see people standing up for adhoc problems. I don't see why some openly bash problems that require "observation" and "IQ" to be solved. Thinking and "AHA" moments are just as part of CP as writing that 100 line modified flow algorithm...

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

antontrygubO_o you are doing great, please continue.

»
4 years ago, # |
  Vote: I like it +38 Vote: I do not like it

Is this in response to https://codeforces.com/blog/entry/80007 and comments on that?

If so, I do support having less constructive algorithms problems in contests — I find them extremely annoying. This is different from Ad-Hoc problems, which I do like.

I know that some people really like constructive algorithms and it can be argued that these problems are important, but a contest should not be overloaded with them.

An example of a really nice contest is Codeforces Round 641 (Div. 2) (only talking about Div2, I know Div1 was unbalanced) — there was only one constructive problem in Div2 A-E, and yet the non-constructive problems are interesting.

A really bad contest is Codeforces Round 638 (Div. 2) — Div 2 B,C,D are all constructive.

I would rather participate in a round full of math problems (no geometry though) than a contest with even two constructive problems. I am not asking for removing constructive problems, but only for a more balanced distribution of topics.

»
4 years ago, # |
  Vote: I like it -13 Vote: I do not like it

#AdHocProblemsMatter keep up the good work :)

»
4 years ago, # |
  Vote: I like it -16 Vote: I do not like it

antontrygubO_o I love your problems due to how diverse and mathematically rich they are compared to past rounds, which mostly had problems based on well-known algorithms. I personally feel that Adhoc problems help in both mathematical thinking and at times developing the ability to design algorithms (talking about the Adhoc problems which are not purely mathematical and need ingenious implementations at times which do not fall under typical categories). Keep up the great work and I look forward to more rounds from you!

»
4 years ago, # |
  Vote: I like it -36 Vote: I do not like it
»
4 years ago, # |
Rev. 2   Vote: I like it +127 Vote: I do not like it

Also, there is a very vocal group of people who likes his view on things :)

I do dislike his view on things, and I also deserve a right to criticize it. But Anton's work is in the scope of CP regardless if I like it or not.

Not all people should have same way of thinking. We need more diversity to learn more different things. Anton's work represents the idea he envisions, and sharing them is a great thing for the community. Thank you antontrygubO_o!

»
4 years ago, # |
  Vote: I like it -8 Vote: I do not like it

All the questions are good. What I have noticed is that when antontrygubO_o is the coordinator, there are more AdHoc problems. These problems are hard to make(kudos to the problem setters) and very enjoyable to solve. I don't think this culture should die.

antontrygubO_o we do love what you're doing and keep it up!!!

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

antontrygubO_o I love your problems very much, although in almost all your contests I've lost rating . But please carry on, you'll always be my favorite problem setter.

#AdHocProblemsMatter
»
4 years ago, # |
  Vote: I like it +39 Vote: I do not like it

I like ad-hoc problems but I have a worry. What should we be teaching beginners? The usual thing I do at my university is to first teach good programming habits, then "classical" competitive programming techniques (backtracking, DP, graphs, data structures). But if they become less and less important for contests, my trainees start to wonder why they never seem to get to apply what they learn or why they still do very poorly despite the training.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +6 Vote: I do not like it

    I think adapting your teaching to shifting trends is a normal process.

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it +10 Vote: I do not like it

      That's a fair comment. Any concrete suggestions? Like what typically happens in training sessions in more successful universities? I guess, "Just solve more problems?" Beginners who are looking for some structure in their training aren't going to be happy about this, but oh well, I guess?

      • »
        »
        »
        »
        4 years ago, # ^ |
        Rev. 2   Vote: I like it +14 Vote: I do not like it

        Disclaimer as I have never been in a training session of a more successful university.

        First of all I don't think it is true that classical techniques are not important anymore. They still are, and serve at least as inspiration. About them not appearing specifically on CF in Div2A-D, I already wrote somewhere that this has been the case for a while. In any case I think my ideas should complement lectures about classical things, not replace them.

        But here are some ideas (untested and require at least some amount of motivation from students). Pick a small problemset (it could be an old contest but probably it is better to curate it yourself so that every problem matches the skill level of your students), leave it as "homework" for a few days. During a session, ask every student to present the solution to one problem. But it is important to not let it become like other homework, it should still be based on them being interested.

        Or do it seminar-style. Ask each student to look around for some fitting problems and then let every student pick the problemset for some week.

        Edit. Why so many downvotes? :O

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
            Vote: I like it +31 Vote: I do not like it

          Yeah. I have just read Anton's post and your comment there. If setters don't propose as many classical problems for Div. 2 as they used to, then it can't be helped. It's not Anton's fault. I'm not even really opposed to having only ad hoc problems in Div. 2. It can be more welcoming for the talented but untrained beginner.

          Also, I'm aware that the landscape has changed a bit, for some time already, and I'll admit I've been slow to adapt. And I agree that though it has changed somewhat, the classical techniques are still pretty relevant, if not in Div. 2's, in contests with higher stakes like ICPCs (at least in my region) and OIs. (I've joined too few Div. 1's to judge.) Of course, classical techniques should still eventually be taught. I think my real dilemma is how early or late the classical techniques should be taught, given they don't appear frequently in "beginner" contests anymore, and, if the answer is "not early," what to replace them with, but I suppose it's hard to give exact answers.

          Anyway, thanks for your nice suggestions. They're definitely worth trying.

»
4 years ago, # |
  Vote: I like it +10 Vote: I do not like it

I guess that everyone has a task that you are very proud to have solved during the competition.

Remember this problem? I'm 90% sure this is an AdHoc problem. For me, this problem was 1205B - Shortest Cycle, that was authored by antontrygubO_o.

#AdHocProblemsMatter
»
4 years ago, # |
  Vote: I like it +10 Vote: I do not like it

antontrygubO_o you are a great problem setter!!!!we also enjoy those regular contest......actually we always want more contest/////

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

keep it up bro

»
4 years ago, # |
  Vote: I like it -18 Vote: I do not like it

Stop using hash tags they are so childish and cringy.

»
4 years ago, # |
  Vote: I like it +357 Vote: I do not like it

I am delighted with the responsibility, diligence, sense of style, and generally the work of antontrygubO_o. He is great! I am very glad that he is a problem coordinator. Some participants like his style more, some participants like it less. But this vision has a right to exist and is interesting to many. Thank you, Anton, for your work!

»
4 years ago, # |
Rev. 2   Vote: I like it +31 Vote: I do not like it
#AdHocProblemsMatter

I've noticed that I enjoy Codeforces/Atcoder problems a lot more than other problems, like Codechef, Code Jam, and local onsite competitions. One of the reasons is because they value problems that are original and enjoyable to solve. I think people overestimate how hard it is to create problems that are <= D level, use dp or ds, and be original.

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

I would like to express my gratitude and appreciation to the present CF coordinator antontrygubO_o for the great job he is doing to make high-quality and beautiful competitive programming rounds, and I would like also to express my best wishes for him to keep these excellent endeavors going.

»
4 years ago, # |
Rev. 3   Vote: I like it -16 Vote: I do not like it

[Deleted]

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

antontrygubO_o I love your problems, please don't stop!

»
4 years ago, # |
  Vote: I like it +3 Vote: I do not like it

Just dont stop antontrygubO_o :)

»
4 years ago, # |
  Vote: I like it +159 Vote: I do not like it

antontrygubO_o I don't care about your problems, please do whatever you want!

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

The reason why we love CF is the consistency of some really good and variety of problems in all the contests. He does a great job in Coordinating the rounds. Full Support to him.

»
4 years ago, # |
  Vote: I like it +340 Vote: I do not like it

No guys, Ad Hoc are ok, but you should remember that #AllProblemsMatter.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +19 Vote: I do not like it

    I think only problems that are interesting to solve for at least somebody matters...

  • »
    »
    4 years ago, # ^ |
      Vote: I like it -27 Vote: I do not like it

    I understand what you're getting at, but this hashtag is in response to the huge backlash against Adhoc problems, and #AdhocProblemsMatter does not imply that other problems do not matter. It is simply an attempt to show that Adhoc problems have an important place in CP too.

    This is like saying #BlackLivesMatter should be replaced with #AllLivesMatter. Such hashtags are just designed to show that the subject in question is important as well, and does not mean that it is the only thing that is important.

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it +9 Vote: I do not like it

      It's pretty childish to compare some discussion about problem types with racial injustice issues in US.

      • »
        »
        »
        »
        4 years ago, # ^ |
          Vote: I like it +65 Vote: I do not like it

        I actually very much agree with KabirKanha's analogy and don't see anything wrong with comparing simple and important things.

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
            Vote: I like it -15 Vote: I do not like it

          +1, upvoted KabirKanha

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
            Vote: I like it +71 Vote: I do not like it

          OK, I believe you don’t have any other intention than an innocent analogy. Then I will now proudly go for #DataStructuresMatter

          • »
            »
            »
            »
            »
            »
            4 years ago, # ^ |
              Vote: I like it +63 Vote: I do not like it

            I agree with ko_osaga ofc. Last times there are more and more contests with Ad-Hocs only, while in the past everything was OK. There were also Ad-Hocs, but there were no more of them that of any other problems, so trying to remind people that #AllProblemsMatter or even #DataStructuresMatter makes more sense.

            • »
              »
              »
              »
              »
              »
              »
              4 years ago, # ^ |
                Vote: I like it -11 Vote: I do not like it

              Let's be honest everybody have their strong and weak points and if a contest has all math or dp many might not like it for the same reason. So a well prepared contest is only that one which has a problems of a lot of variety and category and can test out many. A contest can surely and must have a problem related to Adhoc Category but if all the problems are based on that, Nobody will like it.

              I support antontrygubO_o in making more and more amazing problems but I hope they will have belong to a wide range of categories. I have been missing graphs problem for quite-sometime now :)

            • »
              »
              »
              »
              »
              »
              »
              4 years ago, # ^ |
                Vote: I like it +20 Vote: I do not like it

              I'm definitely on board with #DataStructuresMatter. But let's not go overboard here. Some problems are just bad. In some of the recent AtCoder Beginner Contests, problems B and C are often like "Well yeah okay I guess I can code this, but if I do can someone give me these 3 minutes of my life back at least?"

              The point I'm getting at is that #AllProblemsMatter is really easily countered with #SomeProblemsSuck.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +103 Vote: I do not like it

    yeah, I agree with this. I can understand the overwhelming support of LGM's for ad-hoc problems because most of them would have probably done 100's of problems on DP, graphs or data-structures and now find them boring and hence are looking for something new in ad-hoc problems. But that is not the case with most of the other guys on codeforces and non ad-hoc problems may be exciting for them. Also I don't understand why do many people seem to believe non ad-hoc problems are just about typing 100's of lines of standard code. More often than not, they involve a decent amount of thinking as well.

»
4 years ago, # |
  Vote: I like it +74 Vote: I do not like it

I like ALL the problems in the contests! No matter adhoc/not-adhoc, 1/100 lines of code, math/nomath etc.

More problemsetters -> more problems -> more contests -> more fun!

antontrygubO_o keep going!

»
4 years ago, # |
  Vote: I like it -62 Vote: I do not like it

Who else hates Um_nik , all his blogs and comments?

  • »
    »
    4 years ago, # ^ |
    Rev. 2   Vote: I like it +39 Vote: I do not like it

    I don’t. antontrygubO_o ’s problems are really good, he shouldn’t give up with problemsetting, but I totally agree with anonymous_Bunny ’s comment. We still should check different areas of skills and not make contest focused on math/puzzle solving.

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

I think it is time for Anton Trygub fan-club guys...

»
4 years ago, # |
Rev. 2   Vote: I like it -89 Vote: I do not like it

One great feature of "ad-hoc" problems is that they minimize the advantage of someone who has a library, or has more experience (which is essentially like having a library, just a mental one) while having the same problem solving skill as someone who doesn't have those. If anything, "ad-hoc" problems remove this what I would consider an arbitrary advantage, and that's a great thing.

When people say "I like problems where I need to tweak a data structure/have non-trivial implementation", I want to ask — why? What exactly makes these kind of problems great, aside from giving an advantage to people who just participated in more contests/know more theory. I don't think it's good to give advantage to that kind of trait — it's relatively easy to learn yet another data structure that someone else invented than it is to improve an actual problem-solving skill of oneself.

When you take away all the non-original aspects of a "non-adhoc, data structure/algorithm" problem, i.e. remove application of a well-known algorithm/data structure, what is left is probably something "ad-hoc" — "change this specific aspect of this algorithm to fit these specific requirements". How is this not just "ad-hoc" with extra steps? (extra steps that not only waste time, but also give an arbitrary advantage to some people)

If anything, I think every new Codeforces account should be sent a link to an "approved" library with all of our usual suspects — segment trees, graph/tree traversals, etc. etc., so people don't compete on whether they saw a data structure before and have it ready in their library. Because that's a silly thing to compete on.

antontrygubO_o, keep up the great work!

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +43 Vote: I do not like it

    never heard that much stupidness

  • »
    »
    4 years ago, # ^ |
      Vote: I like it -6 Vote: I do not like it

    Except for the last paragraph, where you were really silly :P, I agree with you.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    minimize the advantage of someone who... has more experience... and that's a great thing.

    Wtf is wrong with you. So should we make math contests just about arithmetic so it is equal playing field for everyone and not dependent on knowledge? This is the stupidest comment I've ever seen on cf. Having more knowledge is what differentiates the best from the average, and allows for more interesting problems.

    The worst part, is you call it an "arbitrary" advantage. It's not arbitrary, it's called practice. If you think practicing should not make you better than someone without practice, you're literally crazy. I hope you never have the chance to organize any sort of competitive activity.

    And for your information, I like non-trivial impl because that's the contest i signed up for, a competitive "programming" contest.

    • »
      »
      »
      4 years ago, # ^ |
      Rev. 2   Vote: I like it 0 Vote: I do not like it

      First, watch your language.

      Second, you are deliberately leaving out the crucial part of my argument. I didn't just say "minimize the advantage of someone who... has more experience", I said "minimize the advantage of someone who... has more experience while having the same problem solving skill as someone who doesn't have those.

      In other words, I believe that if two contestants have the same problem-solving skill, they deserve the same rating. Someone who spent years on a platform/solving competitive programming problems without -- I repeat for the people in the back -- * without making more progress in their problem solving ability* should not have a higher rating than someone who obtained the same level of problem-solving skill with less knowledge of specific algorithms, less time spent on the platform, etc. etc. Basically, I am in favor of minimizing the effect on contest performance of anything other than problem solving skill. Hope this clarifies your confusion.

      And for your information, I like non-trivial impl because that's the contest i signed up for, a competitive "programming" contest.

      That's a reasonable argument, but by no means an obviously correct one. The fact that it has "programming" in the name isn't really meaningful in itself -- the code is just a medium; all "competitive programming" says is that you compete in writing (short, ugly, not-at-all like in real world) programs -- it doesn't really imply anything about the nature of the competition and what it should screen for. Your preference for implementation is fine, but what I'm saying is that if you enjoy implementing standard algorithms/data structures and you actually do that during a contest, at the very least you are putting yourself at a disadvantage against people who have this saved somewhere in their library. I mean, good for you, but willingly putting oneself at a disadvantage sounds weird to me.

      You have a right to your preference just like a have a right to mine, and I don't see a reason for getting so sensitive because someone stated a preference different from yours.

      • »
        »
        »
        »
        4 years ago, # ^ |
        Rev. 2   Vote: I like it +6 Vote: I do not like it

        You act like having problem solving knowledge is completely separate from the ds/algo knowledge, but ds/algo's just allows you to work on more complex problem solving by having more solid foundations, ie knowing fundamental problem solving techniques in cp domain. If you disagree with that someone who knows more of these ds/algos should be higher rated than someone who knows less dsa but has "the same problem solving skill" (I think the one with more dsa knowledge would actually have more problem solving skills then?), do you think imoers should automatically also be gm as soon as they try cp? Sure i'll agree they will learn faster, but cp should have cp specific fundamental domain knowledge as it is a separate contest, and I disagree with people who think knowing more dsa/algos does not make you have better problem solving skills. In my opinion, if two people are equal at ad-hoc but one knows way more dsa, the one who knows way more dsa is far more skilled and deserves higher rating.

        And also I don't prefer implementing well known algo's that are copy pastable, that is still trivial impl... Longer does not necessarily equal non-trivial. Some people don't seem to understand that you can have harder problem solving and harder impl.

        Also, "First, watch your language.", bruh this is the internet.

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
            Vote: I like it +25 Vote: I do not like it

          Learning algo/DS could improve your understanding of underlying concepts but it doesn't by default. I believe there are people who "learn" data structures by memorizing the code and "practicing" on special problems which require using this particular data structure. While the real struggle is understanding how to apply some data structure to the problem.

          I learned Segment tree approx the same time as I become red. I'm still afraid of writing HLD while there are cyans who can easily write HLD. But I'm pretty sure that in real problem which requires reduction to HLD (i.e. think and then apply HLD) I have decent chances against any cyan that knows HLD even if I will need 3x much time to write the data structure itself. Because knowing the data structure doesn't really show you how to solve problems using it.

          • »
            »
            »
            »
            »
            »
            4 years ago, # ^ |
            Rev. 2   Vote: I like it +47 Vote: I do not like it

            I don't disagree, some people definitely just memorize without being able to apply, but I would argue you don't really know the dsa if you can't apply it, you have merely just heard of it and can copy it. But I think it is silly to say people who truly are able to use dsa in creative manners do not have any new problem solving skills, as they have another problem solving tool they can use which puts them ahead of those who don't.

            What's the difference between think and then sort by correct value, something I see more and more in easy problems, vs think and apply hld? I would say neither are very fun problems, and also you would easily beat cyans at both since you would see the reduction quicker, if they could see it at all, since you are better at solving problems involving both those concepts so in the end you know hld much better than them.

            However I do want to say I don't want to take away from the article, anyone who's willing to take time out of their life to make problems and organize contests definitely deserves recognition and praise, antontrygubO_o orz. I'm just merely stating throwing dsa aside as worthless knowledge entirely, or merely as a necessarily evil, I think is kind of ignorant against a large part of cp.

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
          Rev. 2   Vote: I like it -9 Vote: I do not like it

          If you disagree with that someone who knows more of these ds/algos should be higher rated than someone who knows less dsa but has "the same problem solving skill" (I think the one with more dsa knowledge would actually have more problem solving skills then?), do you think imoers should automatically also be gm as soon as they try cp?

          Hmm... yeah? Why not? If someone who's proven they are obviously smart and world-class at problem-solving, doesn't succeed at your game of supposedly problem-solving, then it's not really selecting on problem solving, is it? Curious, why do you bring this up as something that's obviously bad or even insulting? What's up with the gatekeeping, lol? Sounds like someone might be a little insecure.

          Again, it's a reasonable to want to also screen for some sort of domain-specific knowledge. I disagree with this notion, but it's a matter of taste, and I don't think you're moron for wanting this. But at least I provide some sort of reason for my (subjective) viewpoint — I think problem-solving skill should be the deciding factor, and the rest is, as you correctly pointed out, necessary evil. Because the problem-solving part is where the fun is, and where the challenge is. I'm yet to hear the reasons why some sort of barriers to entry in the form of having a baseline volume of theory known or memorized is good for the competition.

          • »
            »
            »
            »
            »
            »
            4 years ago, # ^ |
            Rev. 2   Vote: I like it +16 Vote: I do not like it

            Let me put it this way. Do you not think building upon the work and problem solving of others does not help you to solve more complex problems? This is what dsa does, allows you to solve more complex problems than you would be able to entirely solve with no pre-req knowledge within a contest span. And because it is a cp contest, it makes since the pre-req knowledge is cs related, hence dsa.

            Also "problem solving" is not some pure abstract notion. It is having a creative and advanced applied knowledge to a field. Just because you are good at "problem solving" creative ways to cheat on a test doesn't mean you should automatically be gm either. This is why imoers with no dsa knowledge should not be gm immediately, they are world class problem solvers in math, a related, but not the same field as cs.

            • »
              »
              »
              »
              »
              »
              »
              4 years ago, # ^ |
                Vote: I like it -6 Vote: I do not like it

              Do you not think building upon the work and problem solving of others does not help you to solve more complex problems?

              It does. And yes, that's an excellent (and, in my view, the only valid) reason to have algo/ds in problems -- these are tools to add necessary complexity to make the problems hard enough for the given level. Again, hard enough not because you need to implement bunch of "update()", "query()", "select()" methods available in the textbook, but because these structures have enough nuance to make interesting problems out of these nuances -- i.e. relationships to observe, changing the standard case in an interesting way, etc.

              But the bulk of the criticism Anton gets is that he doesn't have ds/algo in Div.2 ABCD. But he seemed to manage to have hard enough problems without a huge ds/algo component, so I don't see what's the issue! People are not complaining that his problems are trivial, but rather, most of what I'm hearing is that they don't write as much code anymore, and therefore somehow these problems are worse. That I disagree with.

            • »
              »
              »
              »
              »
              »
              »
              4 years ago, # ^ |
              Rev. 3   Vote: I like it 0 Vote: I do not like it

              Regarding your second paragraph, I actually agree with you mostly -- I intended to follow up on this point myself but you raised it.

              I agree that competitive programming is domain-specific problem-solving. But I think that specificity is achieved not because there's some prerequisite knowledge involved, but because of the nature of the problems and the competition:

              • Competitive programming makes you better at solving problems whose solution can be expressed as an algorithm. That's, like, pretty specific in itself.
              • Moreover, there's almost never any randomness/prediction component to it -- the solution has to be deterministic enough to enable automatic checking.
              • Third, we all know that the solution actually exists. This sounds like a silly point, but I argue it actually isn't -- this is very different from many, many areas of problem-solving.
              • There's way less emphasis on proving things — one can get away with intuition/hand-waving in a lot of cases.
              • You don't really compete against other people in the sense that their actions don't influence yours and vice versa, i.e. there's no game-theoretic aspect to it.

              These are just 5 that I rattled off immediately off the top of my head without thinking, and I'm sure there's more. If you think of a math olympian, you can immediately see that they might need to catch up on #1, and might be too fixated on #4, so yeah, they will still have to do some domain adjustment. Just like a world-class competitive programmer will not immediately make a final table at World Series of Poker, because of #2 and #5 (but with some practice, they should!).

              Note that at no point I mentioned ds/algo knowledge. There's enough domain specificity to go around without those.

              • »
                »
                »
                »
                »
                »
                »
                »
                4 years ago, # ^ |
                Rev. 2   Vote: I like it +13 Vote: I do not like it

                I disagree with #1, besides that, I agree with you. Even with my example, when figuring out a way to cheat on a test, you're performing an algorithm which is a series of steps to solve the given problem, my point being using an algo is very broad. Similarly, if you read an olympiad combinatorics book, you will see that math oly has nearly the same problem as the ad-hoc problems that just rely on invariants and monovariants, which are a large part of the recent problems. I've always believed dsa is what seperates cp from math oly, otherwise cp just looks like a less rigorous subset of math oly except with impl, which I think would be kinda sad and something I do not want. I would just argue the nature of the competition is being able to apply a variety of of logical structures and mindsets, a large part of them being dsa.

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  4 years ago, # ^ |
                    Vote: I like it +5 Vote: I do not like it

                  I've always believed dsa is what seperates cp from math oly, otherwise cp just looks like a less rigorous subset of math oly except with impl, which I think would be kinda sad and something I do not want. I would just argue the nature of the competition is being able to apply a variety of of logical structures and mindsets, a large part of them being dsa.

                  I see. Hmm, this aspect I haven't really considered before. Thanks for sharing.

»
4 years ago, # |
  Vote: I like it +6 Vote: I do not like it

Awesome problems . #AdHocProblemsMatter

»
4 years ago, # |
  Vote: I like it -13 Vote: I do not like it

Please join Eva Krauze antifanclub

»
4 years ago, # |
Rev. 2   Vote: I like it -47 Vote: I do not like it

Just I want a guide that recently I will after 3 to 4 months I may appear for my interviews for jobs/internships. So shall I continue solving this Div2 A to E or go preparing on Leet Code for my interviews with quite only ds/algo required problems.or Partially do both. I am bit confused by blogs on codeforces, someone say doing Ad-hoc is also better than solving ds/algo. Some say that ds/algos are much better. I am confused please someone guide me that what shall I do for coming months . Codeforces Div2 contests or just practice Leetcode. I hope my question is clear to all.

PS:- Or if Someone give me a problemset where adhoc is balanced with Algo/Ds then also it would help me.Means are there any problem practice sets which have balance of both algo/ds with ad-hoc in the problems .50-50% or 60%-40% balance will also be Ok to me.

»
4 years ago, # |
  Vote: I like it -41 Vote: I do not like it

I dislike too many constructive problems. It's like eating only rice for an entire month. while some people don't mind, I do. Just my opinion.

»
3 years ago, # |
  Vote: I like it -6 Vote: I do not like it

The quality of questions in contests coordinated by Anton was simply superb and would love to see more of them in the future. Kudos to them for all the great work. :)