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

GlebsHP's blog

By GlebsHP, history, 7 years ago, In English

I've already expressed everything in this comment, however, I've decided to additionally create this post to raise the attention to what I consider to be a very serious and frustrating issue.

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

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

Also this contest has smallest score of anouncement ever...

Some statistic by sslotin

UPD. Thanks everyone for support!

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

Honestly, I gave plus to the setters and announcment.I do it nearly everytime ( if I do not like contest, I skip to give -/+). Actually I like fourth task very much and I do not think the round was so horrible.

But you have only mentioned part with third task and precision, I would say much more things:

  1. First task was harder than usual, many other users would participe 2.Second task was harder too, pretests were very weak, I forgot half of the task and it didn't give WA... You gave stronger tasks, gave stronger pretests for them too.
  2. I do not have to say anything about third, it was written a billion times.
  3. Fifth, sixth and seventh are enormous hard for 2hour contest, I wouldn't solve it even they were much easier, but when you hava in last 3 tasks totally 20 good submissions it means something is wrong.

I do not think setters done bad job, but they could expect bad comments for third and KAN could expected that other problems are harder than they should be.

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

I also want to mention that this situation is very stressful for the future authors. Just imagine how afraid they will be while deciding to submit their contest proposal if this can result in -100 for both the post and the editorial? This is a right way for CF to lose all the problem authors as they will prefer HR, CodeChef, TC or whatever.

CF has a unique social feature that is much better than anything you can find on the rest of online judges, but with great power comes a great responsibility. It is really easy to break a community by writing hate comments and bullying the authors for the problems you personally dislike.

Finally, I want to mention once again that the authors prepared a round without any serious issues that had place on the rounds of many famous authors (like wrong solutions, mistakes in checkers or well-known problems). Considering the fact authors are two guys of purple and blue colors, I think they should be respected, not punished.

PS I'm not working on CF right now, and this is my personal opinion as a community member for more than 7 years.

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

    This is a right way for CF to lose all the problem authors as they will prefer HR, CodeChef, TC or whatever.

    It's a pity, but it's already happening. And it seems the main reason is money.

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

      The main reason is definitely not money. Reasons :

      1. Can you wait for 3-5 months without any reply or acknowledgment from anybody ? — Very Difficullt.

      2. Do you need such amount of patience on any other platform ? — Definately not.

      Just try any other website, and they will atleast give u a reply. Who wants to wait for 4-5 months for just a single reply ? Very few do in the modern world where patience is a big issue.

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

        You are right, and here comes the question how many coordinators CF needs — definitely more than one. And we come to the same question again — CF needs to pay him [potential second coordinator] significant amount of money.

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

I don't like this contest. In my opinion the only one good problem was E. A-D were standart and not interesting. F was ok, G is bad for using in cf round, because even if you create right idea of solution you will not be sure that your implementation fits in TL. Such problems could be tested effectively only on full testset. It is not the first round which I have downvoted during last year, and it is frustrating for me that quality of cf rounds is decreasing.

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

    Am I the only one who has an impression that among CF, TC and AtCoder (my subjective choice of best OJs), CF is the only one that features hardest problems that are rather standard, demand little insight but are ugly to code (like "create 3 complicated segtrees over preorder on tree" or "hash subtrees for every possible root" or last 2 problems here: http://codeforces.com/contest/776). Since I have heard many times that CF queue is so long my impression is that coordinators should filter out less interesting problems. Being willing to cooperate and prepare problems should not be the only one requirement for conducting round — you should also have interesting ideas for problems.

    P.S. Inb4, I don't know problems from last round, so my comment is not related to it in any way.

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

      I believe that coordinators don't want filter such problems because they think, that such problems should be included in rounds for training.

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

So... Since when "YES/NO" geometry is an OK problem?

Considering the fact that the duration of the contest is default and there are seven (?!) tasks, where B is already pretty difficult compared to other Div2 B. If I were to participate in this contest, I'd quit at problem C after looking at "yes/no" geometry problem. Not only this problem is pure garbage but also this contest is WAY too short for seven hard problems and I can't possibly understand how did the current coordinator allow this to happen.

Is this really not obvious that people won't be able to solve seven problems in this duration? I might be misunderstanding what CF coordinator is supposed to do then. Isn't it his job to ensure that the problemset is at least somewhat interesting to solve and it is possible for contestants to solve it?

To be honest, I already prefer AtCoder (big thanks to you, rng_58) over CF and this is mostly because people who don't have much experience in codiaround und purple/blues on CF?) are never the problemsetters, problems at AtCoder are almost always interesting to solve even though the difficulty is somewhat close to CF. On CF I skip a LOT of rounds, mostly right after I see blue setter I am like "oh thank you, I'll pass this time". It would've been OK, if these problems were done correctly, but from my experience, I can see that usually there are many issues, and the one to blame is CF coordinator. This is his job to make sure that contest are entertaining, he can choose proper problems to do it, can't he?

I think I'll still stick to AtCoder no matter what happens now on CF because this has been a huge issue on CF for a long time now.

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

    Moreover, I don't even understand what's the deal with the post rating. I don't really find it discouraging having a post with negative rating, it's just a thing to think about. If you have a post with negative rating, then probably you need to think what can you improve to make it better right?

    I don't see any reason not to create contest because people will "dislike you on CF"

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

    Why would a yes/no geometry problem be not OK? According to this logic, one can go like: I don't like this type of problems, so they should never be in a contest.

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

      Mostly because it isn't guaranteed that slight (+-EPS) changes do not change the yes/no answer. This fact leads to almost impossoble calculation of required EPS in comparison operations.

      It requires more attention from the coordinator to make sure that this isn't the case with this particular problem.

      I hope you do understand that all floating point tasks are different from integer ones and what I don't understand is your logic "according to my logic".

      The hardest part of this problem becomes in calculating the eps, and this isn't the thing you want to be doing on the contest, right? Competitive programming is enjoyable mostly because that's interesting to come up with the solution's algorithm, not focus on these tiny parts...

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

        What stops you from doing calculations in integers? I'm not saying I'm a huge fan of this problem — as a contestant I didn't like B and C yesterday — but having fun with picking eps is your own choice, when in fact you can implement function to compare a/b fractions precisely instead. This task has nothing to do with evil geometry in which you think "Ouch, I need to add, subtract and multiply fractions here... And probably take some sqrt() and cos()... Damn". All we got here is to compare a/b and c/d.

      • »
        »
        »
        »
        7 years ago, # ^ |
        Rev. 2   Vote: I like it +16 Vote: I do not like it
        1. There a solution without floating point arithmetic. I implemented a solution that uses only integers and got AC during the contest. So it was not necessarily about choosing the right value of epsilon.

        2. Tiny parts matter. It's a programming competition, not a computer science/discrete math contest. Getting all the details right is a part of it. I believe that coming up with an algorithm is not the only (and, in my opinion, not necessarily the most important) thing in a programming contest.

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

        Mostly because it isn't guaranteed that slight (+-EPS) changes do not change the yes/no answer. This fact leads to almost impossoble calculation of required EPS in comparison operations.

        I disagree with you, there are many great geometry problems that allow absolutely precise choice of EPS. I believe that choosing the correct epsilon has exactly the same origin as calculating the complexity of the solution: you look on the constraints and then analyze the behaviour of your program.

        This particular problem required the easiest possible procedure of choosing the epsilon among the class of problems that allow the floating-point solutions. It is literally available to anybody with basic algebra knowledge.

        After all, the fact your solution output changes when you perform slight +/- changes on the input is the property of your particular solution: this problem may be solved in integers.

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

          Sorry, I have never learnt how to calculate precision error in doubles and stuff. Mind sharing some resource on how to? This is the first time I encountered such problem in cf as I am too weak.

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

            If we could use the absolutely precise arithmetics, the solution would be: calculate the interval of allowed time (L, R) (or [0, R) if we do not have a lower constraint and it is OK to attack mice at the moment of 0) and then check if the right endpoint of an interval strictly larger then left endpoint.

            You perform the calculations in doubles, so you have to distinguish the situation when L ≥ R from the situation when L < R. Let's remember that both L and R are of the form p / q where p and q are up to 105.

            The main and the only statement: if R - L > 0 then R - L > 10 - 10. Proof: R - L = p / q - r / s = (ps - qr) / (qs). If it strictly greater than zero, it is equal to at least 1 / (105·105), so we have to options: either R - L ≤ 0 or R - L > 10 - 10. Now suppose you use long doubles; in terms of long double precision this is a huge gap: just choose some epsilon in between and compare R - L with it, like, choose eps = 10 - 11.

            The only last question is why doesn't the calculation error affect the correctness of the result. The answer: the intermediate expressions here are p / q and r / s, the calculation error of p / q - r / s has the magnitude of |p / q|·10 - 18 (long double stores about 18 precise digits, see the definition of machine epsilon), so the arithmetic error will be of order 10 - 13 and if won't affect the expression result when comparing to 10 - 11.

            That's the simple way to get an Accepted.

            You may actually show that if you look on relative error, not absolute one, then it is enough to use doubles (relative error is not multiplied by the magnitude of |p / q|).

            UPD So, the final algorithm if you use absolute epsilon: calculate the smallest possible gap in real numbers (supposing you use an absolutely precise data type), use the smaller value as an epsilon, and make sure that length of the epsilon plus length of the absolute value of the intermediate result is no larger than 15/18 (depending on if you use double/long double or not).

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

          Let me inform u that the writer of round #409 Lewin Gan wrote a floating point solution in Java that broke down by a hack for Problem A div 1.

          With these real number problems, nothing is precise, it is possible to break even jury solution with right hack, this is what I understood there.

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

            Correct! That is why the author should think twice before making a round with such problem. I feel that CF is becoming full of mathematical problems which have nothing in common with programming. And this make me sad.

            But problem C, in turn, has solution with no floating-point operation, but it would be much better to use such problem in some ACM-style contest to reduce the participant's pain caused by failed testing.

  • »
    »
    7 years ago, # ^ |
    Rev. 3   Vote: I like it -15 Vote: I do not like it

    I don't think this YES/NO geometry problem is bad, because the input is given by integers and can solve in the range of integers.
    But, I agree your opinion that "The contest is too short for solving seven problems", and actually I have a same experience in square869120contest #4, unofficial contest in Atcoder, which was held by me and E869120. This was 8 problems in 3 hours, but after the contest it was very very hard that solving 7-8 problems in contest time.
    But I thought that we should improve it. I know that writers wants to make many hard and interesting problems, but the duration is duration, so if too many problems with high difficulty, many contestants can't enjoy it.
    EDIT: s8pc-4 is an "unofficial" contest, so atcoder has no responsibility and it is written in contest top page. I think Atcoder is a very good contest site. And I know your thinking if you are disagreeing that solving 7 problems is very hard, but actually there is no coder that solving more than 5 problems.

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

    I completely disagree with you about that this contest was too hard for these seven problem.

    Personally I hate these "4 blitz problems which can be solved in 40 minutes of two hours and one interesting problem which can happen to be just not that personally you like" contests.

    It is always great when you can choose what to solve, as yesterday with 3 solvable EFG tasks.

    The contest where you solve everything almost always brings you zero satisfaction -- usually you see that you are too slow, and have 30 minutes more to go with nothing to do. Of course you can check your code for mistakes or trying to challenge someone, but that is boring. And if you find a bug or fail systest in one of that nobrain tasks that you submitted in 10 minutes in the beginning of contest, that wouldn't make you happy.

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

      I think you're missing my point. I do not encourage people to create contests with 7 problems where people solve all 7. My point is that if you take a look at leaderboards, top contestants barely solved 5 problems. I'm not sure if this is OK for CF because problems here have different scoring for a reason, this shouldn't be like all people went to solve problem F because they dont have time for E+F and G is too hard to solve in let's say an hour.

      I do understand that some kind of time-investment strategy is reasonable for contest, but it shouldn't look like this on two hour contest in my opinion.

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

        My point is that 5 different problems from 7 in top is good, because you can choose what to solve, but usually it is hard to prepare such contest. If pretests in G would be little stronger, there would be a lot of people with 5 different tasks, and more people with 6, which is great.

»
7 years ago, # |
  Vote: I like it -10 Vote: I do not like it

The contest wasn't so bad, A-D were standard. I liked F,on E,G I didn't get into details. The single problem on C is that even if you get the idea, you have to spent too much time on implementation for a Div 1 A, and the pretests were bad so the results are randomized. Maybe it's just me who hates geometry with reals but anyway it is bad IMO when a lot of participants' results are randomized. For me F was awesome and I don't consider that the blog deserves minus.

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

    Honestly I think a lot of the C hate happened because it was a geometry problem. If there was a similar problem (that depended on determining the correct EPS), but with for example probabilities instead of geometry, I doubt people would've gotten that mad. It seems a lot of competitive programmers in general have a problem with geometry, because of the edge cases that arise when you don't do things carefully.

    And a lot of times people are actually just mad that they lost rating. :P

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

      I didn't lose rating and solved the task correctly, the single problem is that I used a small epsilon because it is div 1 A and I didn't think too much. I never encountered problems with precision in tasks other than geometry, that's why I said that.

      P.S. I like geometry but only with lattice points.

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

        I was not targeting you. But I bet a lot of people who whined in the other thread were complaining for that exact reason.

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

I think author don't really have to care this situations, because CF voting system don't really behave in rational way.

I didn't liked C, but honestly CF featured tons of worser problems in recent round, with some even having their solutions wrong. I think other problems were really good (especially D / E) and it was a great round.

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

I make this comment only for my curiosity about a strange phenomenon, not for giving suspicion to anyone.

Before contest started, there were hundreds of upvotes for the announcement blog. After contest ended, it started falling down and quickly got -100. After GlebsHP posted this blog, upvotes were raised rapidly and rapidly again.

Given the assumption that, every user, who cares about voting and planned to vote for the blog, is likely to make his own decision before or right after the contest; why is the rating of the blog still changing?

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

    Because that assumption is totally wrong in real-life...

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

Oops, can't vote twice

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

Wow. So many people are sad about very very nice round. We presolved that as usual and liked it.

1) I did not have any troubles with C during the presolving. My concern was "Geometry is C, ah..." for div1+2 round. But, it is up to you if you want to make some love with EPS during the round or try to implement integer solution OR skip the problem and move forward. Considering that D was not very hard.

2) Contest did not have issues. Problems were great and well prepared. No rejudge or unrate, right?

3) There was a comment about AtCoder. I see no reason to pick up one platform over another especially 2 great platforms like that. Hope that some day AtCoder put different time for some of the contests (5am on Saturday is not the best time for programming competition).

I hope to see more rounds from the author!

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

    Problems were great and well prepared.

    Weak tests in E and F — can't say this means well-prepared. Although E is a great problem.

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

I think that the main point is what we can learn from this round.

Problem B allows you to estimate your own coding speed. If you feel, that this problem wasted your time, you need to improve your coding skills significantly.

Problem C allows you to think how to deal with all these strict inequations: to use floating point numbers with some predefined epsilon value or to represent anything in a form of fractions using 64-bit integers. The special point is that you have only one attempt and no right to make a mistake. So the choice is up to you.

In my opinion it is better to face such difficulties at a CF round rather than at the official contest. Despite the loss of the rating, one can maximize the benefits of participating in this round.

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

    In my opinion it is better to face such difficulties at a CF round rather than at the official contest.

    What is official competition exactly and why Tinkoff Challenge is not one of them?

    PS: I'm not going to argue about problems because I mostly agree, but I don't understand this idea that CFs and other online contests are preparation for something more real.

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

Up?