chromate00's blog

By chromate00, 5 days ago, In English

Well, that was a blast, certainly. I hope that you... learned a lot from the contest. I wouldn't say "enjoy the contest", I know most of you hate geometry, I get you. But please do remember that, at least I did try my best to make every problem as high quality as possible. Like, if you don't get familiar with thinking about geometry now, you might never get familiar with it in the future. Though I apologize that E was quite hard, I suggest you to upsolve or read the editorials of the tasks you could not solve. I am telling you, it will be an experience that will make you improve much more from now.

Solution codes will be posted after the open hack phase. They are now added.

Spoiler

2074A - Draw a Square

Editorial
Code

2074B - The Third Side

Editorial
Code

2074C - XOR and Triangle

Editorial
Code

2074D - Counting Points

Editorial
Code

2074E - Empty Triangle

Editorial
Code

2074F - Counting Necessary Nodes

Editorial
Code

2074G - Game With Triangles: Season 2

Editorial
Code
  • Vote: I like it
  • +103
  • Vote: I do not like it

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

Geometry dash ah contest :p

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

    E :(

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

    As a Geometry dash enjoyer, I wasn't able to immediately get what do you mean xD

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

    hahaha

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

Solved E on pure luck, 310074961 The if condition is so stupid from me because earlier I was getting TLE on TC30, and then I mistakenly added the stupid if condition (which queries n-2, n-1, n) repeatedly after 50 queries which somehow got me AC which I do not deserve.

  • »
    »
    5 days ago, # ^ |
    Rev. 2   Vote: I like it +15 Vote: I do not like it

    Worst E ever. I appreciate that the author thought of such a creative idea but still Im not conviced this was a good E

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

    I could not kill all deterministic heuristics. I was simply unable to. And, well, I tried my best, leading to an interactor that is $$$308$$$ lines long. If I want to kill all of them I could put $$$100$$$ inputs, which indeed kills the Codeforces platform before your solution

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

      Yes thats understandable, with a problem which involves probability, you always have to and unintentionally leave room for a solution which gets AC with no proof. I also take it that thats the reason why hacks are disabled because so many solutions (including mine) are so easily hackable

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

        I'm assuming the reason hacks are disabled is to prevent people from being hacked due seeding their random with a constant or time(0) instead of something unhackable.

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

          also, it is impossible to analyze randomized algorithms without disabling hacks. (sure you can assume "reasonable number of tests" but that isn't a guarantee. There have been problems with upto 1000 tests, and problems with <= 10 tests, the scenarios are very different)

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

            Yeah, I totally understand that, overall it was a nice problem with a good idea, although its placement could have been better

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

With high probability, I can say that the number of participants who guessed $$$E$$$ without proving the bound of queries on $$$75$$$ is more than $$$75\%$$$

  • »
    »
    5 days ago, # ^ |
    Rev. 2   Vote: I like it -49 Vote: I do not like it

    We are programmers; not mathematicians !! So, I guess it is not necessary to prove our approach during the live contest!! Y'all are free to disagree !!

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

    With high probability, I can say that the percentage of participants who believed their solution was wrong is more than 75%.

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

    I literally guessed it so bad

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

I didnt know x+y = x^y + 2(x&y)

how cooked am i chat

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

I submitted my solution for E just to try (actually, I thought it was wrong), but it got accepted... Why is it correct?

310125203

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

    Same with mine, can someone tell me if there is a proof for this approach or was i just lucky 310070577

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

      if i say in simple words then "probability of this question to be asked in exam is 0.0001% so you don't study that question and that question didn't come in your exams" same is for this question "probability of this question to get wrong answer is very less so you just submit it and get accepted."

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

    Your method is equivalent to creating a full trinomial tree using BFS. Imagine that each time you take a node out of the queue, you randomly assign the value of that node to three children. - Your probability of success is the probability that no child node of the process has a zero. The higher up the tree you go, the higher your probability of passing. Suppose the height of your tree is x . Then there's a value that keeps getting smaller by x-1, each time randomly changing to [0,x]. And the smaller it is, the higher the probability that the next reduction will result in a 0 in its children. But you chose BFS over DFS, which makes the tree fat and short, which is probably the worst way to do it. But the probability of passing in completely randomized data is still not bad.

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

I don't think I deserved an AC for my E solution: 310075413

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

For anyone wondering about the solution of D, the reason why you can compute for all N circles at each value of x without clocking O(N*M) solution, is that you're only computing points on the circumference of the circles which is bounded by 2*pi*M.

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

    Umm.. Couldn't quite get that, can you please elaborate?

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

      For each circle do this: go from y=0 to y=r[i] and for each y calculate the maximum and minimum x that lies within this circle (this takes logn time as i used sqrt ig) and ding this for n circles each inner loop runs r[0]+r[1]+...r[n] times which is m.

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

    That's what got me stuck a lot. I tried hard to determine the exact rectangle to choose for any point on the axis. I believe if a jth point lies inside $$$k_j$$$ rectangles, then the number of points is bound by $$$m \over avg(k_1, k_2, ...)$$$, so the total number of rectangles to check is $$$O(m)$$$.

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

    I dont know my dumb a** thought the hint about M "is it really useful??" part and thought the answer is all about finding through M so i thought the max range would be is from -M to +M and I would iterate over array to find the answer, and here is where i lost the question ;(

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

Why does E exist

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

I couldn't do E because I thought, "What if they use the exact test case where they are chasing my choice?".

With some probability, everything can be done in O(1) ig

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

    You receive a point that's inside your triangle and swap with a random point of your triangle. Even if the interactor tries to ruin your life, you have a very high probability of significantly decreasing the area, after swapping with one of the points

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

      lol tell that to my 18 WAs

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

        link

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

          this tragedy perhaps the implementation isnt exactly like the editorial. oh well

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

            Yeah you have to swap with the random vertex of the triangle. The point is that either the interactor gives you a good point(for any swap the area will decrease significantly), or a bad point(for some vertex after the swap the area will be almost the same), but notice that for any bad point there is some good vertex, and you have a pretty high probability of picking this vertex, and the interactor can't predict that. In other words the interactor can try to make some swap bad but there will always be some good swap.

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

Legendary

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

It is actually possible to solve C in O(1)

https://mirror.codeforces.com/contest/2074/submission/310059528

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

can anybody tell me what's wrong with my solution of D, https://mirror.codeforces.com/contest/2074/submission/310145808

basically tried to fix y coordinate for each circle, to get 2 x coordinates, rest is kinda similar to the original solution.

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

    You are not handling some x as this would reduce the total number of points

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

      bro i am getting 46 instead of 80 in second test case, i think i am missing something.

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

        What are you even storing in maxi map, I am unable to understand

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

          maximum y coordinate for a particular x coordinate.

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

            You are missing multiple x coordinates at the top of the circles. e.g. in circle with radius 5. You miss the co-ordinate x=1 and x=2 if it's centred at x = 0, hence missing -1 and -2 too. So your answer is less than the answer.

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

Geometry wasn't geometrying today -.-

»
5 days ago, # |
  Vote: I like it -12 Vote: I do not like it

E is a poor question. The problem states that the interactor is adaptive, which led me to mistake it for a proof problem. Because I think that as long as I can't guarantee that there are no points in my triangles, the interactor will definitely beat me.

  • »
    »
    5 days ago, # ^ |
    Rev. 2   Vote: I like it +1 Vote: I do not like it

    You will eventually have no points inside your triangle, after repeatedly swapping one of the points of the triangle with a point inside the triangle, the more difficult part here is that it will be fast enough(if you swap a point with RANDOM vertex). Well for any point that interactor picks, you might have a "bad swap"(after swapping, the area will be almost the same), but for at least one point of the triangle you have a good swap, and a pretty high probability of picking this point(you have only 3 points), and the interactor has no idea what point you will pick.

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

      Yeah someone with similar code like me but he cycled one before like I went from 3-2-1 he went 2-3-1 and he got wa and I got AC

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

        that is unfortunate, but technically an advanced interactor could break both of those

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

          Thank God I am safe due to no hacks XD

          • »
            »
            »
            »
            »
            »
            5 days ago, # ^ |
              Vote: I like it -10 Vote: I do not like it

            If hacking is possible, then no one will be able to pass this problem.

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

              Yeah I believe we can make hacks for every solution that there will always be possible way to cross the 75 queries limit

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

                with good random seeded with time it would be very hard to do

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

        I just noticed that I didn't explicitly mention in the initial version of the comment that it's important to swap with the random vertex, not in some predetermined order, because the interactor can predict this order(but as you mentioned some solutions like this have passed by luck)

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

          then my passed purely by luck XD as I didn't knew about randomisation before this problem tbh.

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

      This problem itself is very creative, but perhaps due to language reasons, I misunderstood some of the hints in the problem statement. I have considered multiple times, as the solution say, using random points to shrink the triangle area to get a solution that might work. But in competitive programming, "might work" usually means "won't work," which made me hesitant to submit.

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

    I found that to make the randomized more obvious (although to be fair the main thing that helped was the problem having hacks disabled). Might seem counterintuitive but I thought of it in the sense that an adaptive interactor could not adapt if the program made decisions randomly.

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

where to practice questions like E?

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

GeometryForces

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

W contest! Nice problems!

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

anyone know any other questions like E? i want to make sure i avoid them

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

Mathforces!

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

I was solving the E question in the last few minutes and I have no idea how this solution got accepted This submission could have much much more than 75 queries in a worst case scenario

How did it get AC?? https://mirror.codeforces.com/contest/2074/submission/310144435

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

The way author hint on problem D with m bound to solve is true gold. It really saves my contest performance this time.

`the sum of radii is exactly m∗.`
`∗Is this information really useful? Don't ask me; I don't really know.`
  • »
    »
    5 days ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    I wasn't able to solve D. Can you explain how this hint was useful in getting the solution ?

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

      sum(r[i]) = m <= 10 ** 5. It means you can brute force sweep with fixing 1 coordinate and accumulate the other coordinate to the final answer.

      My solution is fixing y, find all x fit the circle.

      The intended solution is fixing x, finding all y.

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

        got it .thnx

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

        but any circle left value can go to -1e9-1e5 and right can go 1e9+1e5 so the complexity in the code is o(n*1e9). How it go ac???

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

          Number of circles = 1e5, so then we use only [xi — ri, xi + ri] points for each x. O(2 * m), m — sum of radius.

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

Worst E of all time. Not just because the proof of the question is too hard for a E, but also because a lot of people were able to do it on sheer luck, worsening rank.

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

310109380 Solution of C. Why Binary search working ? Any proof? Note : suppose x^y = z. z can be x+y-1 maximum and x-y+1 minimum

»
5 days ago, # |
  Vote: I like it -8 Vote: I do not like it

You mean my 10 WA submissions of E were all unluckily under the 1.8 * 10^-20 probility? I have tried 4 different method to change the triples which ask for. At last AC by srand() and rand()? What a poor problem

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

    Your solution is wrong because it always pops the first point and pushes the point to the back. You have to randomly choose which point to pop.

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

      In the AC submission I still use “deque”(pop front and push back), just use rand()in query.(? a[rand()+0] a[rand()+1] a[rand()+2])

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

Very misplaced problems E should be C C should be D D should be F F should be E

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

On problem E, I ended up testing the 3 triangles formed by the inside point and each pair of the other vertices and continuing with the new triangle formed by these 3 interior points (if solution not found yet). But I'm not yet sure that this is equivalent to the editorial solution minus the probabilistic approach. Mainly because it looks like I use 4 queries to reduce the space by at least a factor of 3. If anyone can explain, I'd appreciate it!

https://mirror.codeforces.com/contest/2074/submission/310129128

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

Is it an AD of Geometry dash? it's a good game by the way ;)

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

D was nuts.

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

    Can you please help me understand the editorial or your approach (if it's not the same) for D?

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

      Basically, i followed the editorial's approach. I just wrote the function to get the number of points inside the circle of radius 'r' and center at [c, 0] at a point on x-axis. Since, circles may overlap, to avoid double counting of points that have same x-axis value, i used map for each x-axis which i calculated previously. Say cnt[x] = mx_y, it means that I've taken all the points from [x, -mx_y] to [x, mx_y] already at some circle.

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

here is a solution for C in O(1) //here

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

    Can you please explain your solution?

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

      i really don't have any proof but what I was trying to do is

      I have N so I said lets try N-1 and N+1 to make the condition true so lets try N xor N-1 and N xor N+1 check if the answer satisfy the condition

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

My solution to G passes with $$$O(n^4)$$$, should this happen?

https://mirror.codeforces.com/contest/2074/submission/310074015

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

It felt more like a Geometry Olympiad than a programming contest.

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

Fun fact: A very assuring hint about E's solution was that they disabled hacks and guaranteed a fixed number of test cases. This pretty much implies that the intended solution relies on random and they didn't want participants to suffer from their "weak" random solutions being hacked. Of course, even without such restrictions, the intended solution can still be random if the chances to pass are high enough, but we all know that chromate00 is too kind to let such a massacre to happen :)

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

    thanks to him my solution without randomisation passed and will not be hacked XD

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

    He (and I) believe this is the only correct way to set randomized solution problems. But ofcourse it comes at the cost of giving away information.

    • »
      »
      »
      5 days ago, # ^ |
        Vote: I like it -9 Vote: I do not like it

      Whats the point of such problems? what do they teach i found E extremly useless.

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

        It teaches you that randomization is sometimes useful.

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

          Then why are solutions that aren't random also AC? Why keep a question if you can't ensure that only truly random solutions can pass? Why not make a strong interactor that WA'S all solutions that aren't random, if you can't make it dont keep the question, or keep it in the end.

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

            Do you really think every problem can set a constraint that only the very intended solution can pass and others can never? Let me tell you: almost every problem in the world has at least one way to solve that the authors couldn't come up with. Some kinds of problems are much harder to prevent suboptimal/heuristic solutions from passing than others, but it doesn't mean the problem should never exist, nor that it implies that the authors didn't try to prevent them at all.

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

              Yeah right a problem can have many solutions, but it can be proven that those solutions are also right.

              But a problem whose intended solution is a randomized solution,if that problem also AC's some non random solutions but WA'S some non random solution, is it a good problem? Doesn't it make it unfair?

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

                Authors don't have responsibility to hack every unintended solutions. If your definition of 'unfairness' is to give WA on every single solution that has some chance to be hacked, then I would say that there are many many problems that are unfair. It just can't always be prevented. You can't and shouldn't expect the authors to invest thousands of hours into a problem to test every possible heuristics just to cut out a few more unintended solutions. It's not productive.

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

                  Then why not allow hacking in E and let's how your randomization algorithm helps you there. lol

                  Too big to admit when someone's wrong.

                  I dont really know why is it so hard to comprehend that such problems where a lot of "lucky" solutions can pass aren't good problems and yes author can't spend gazillions of minutes making it good, but yeah sure can spend a couple of minutes to not keep that problem at all.

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

                  Your initial comment was this:

                  Whats the point of such problems? what do they teach i found E extremly useless.

                  and I don't understand why a problem has to be rejected because of these 'lucky' solutions when it can definitely teach you something more valuable, if that's what you were looking for. Why do you even care if some other solutions passed or not, if you can learn something good from the intended solution?

                  but yeah sure can spend a couple of minutes to not keep that problem at all.

                  ... Then you don't care about the time to invent a new problem to replace it at all?

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

                  You are right, I was blinded by my rating drop and ignored the actual reason why i am writing contests.

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

                  You regret yourself when you could not solve 1008C, while it could have been solved with randomization.

                  And now you complain about a task teaching you about the whole concept.

                  I guess you are very ironic.

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

                  I think that C has a very nice analytical solution, it was too adhoc for me.

                  Did you AC it via a random solution? if yes then you are just lucky.

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

                  There are of course proofs for any provably correct solution. I believe sufficiently many Div. 1 participants proved it while using randomized solutions to solve it. I don't think I get your unnecessary hate about it when you could use it as an opportunity to improvement.

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

                  "Winners are always right, and losers are always wrong." -universe

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

      Wrong. If the chance of your code to fail is less then $$$10^{-9}$$$ on one test and it actually failed — you just suck at life.

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

Interesting observation in C:

  1. For x of form 2^k or 2^k-1, there doesn't exist any y which can give you a non-degenerate solution.

  2. For rest of the numbers, getting the leftmost closest 2^k-1 will always result in a degenerate solution.

Solution: https://mirror.codeforces.com/contest/2074/submission/310084628

Note: Got the observations by analyzing the patterns generated by brute force

Got no formal way of proving this, please let me know if anyone can help with the proof.

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

    This is what I came up with as well.

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

    Proofs:

    Let's denote x^y as z.

    1.

    1) Let x = 2^k for an integer k. y < 2^k implies that y&(2^k) = 0 = y&x. x⊕y = x+y-2*(x&y) = x+y = z. x+y <= z -> There is no y, satisfying the given conditions.

    2) Let x = 2^k-1 for an integer k. y < x implies that y&x = y. x⊕y = x+y-2*(x&y) = x+y-2*y = x-y = z. z+y = x-y+y = x <= x -> There is no y, satisfying the given conditions.

    2.

    Let x != 2^k and x != 2^k-1 for any integer k. Let i denote the most significant bit of x, j denote any other set bit of x, k denote any bit lower than i and being unset (i, j, k always exist). Then, by construction y = 2^i-1. x+y >= 2^i+2^j+2^i-1 >= 2^(i+1), z's most significant bit is i, therefore z < 2^(i+1) <= x+y holds. y < x+z holds because y < x holds by construction. x < 2^(i+1) — 2^k. z >= 2^i and y = 2^i-1 implies that z+y >= 2^(i+1)-1 and z+y > 2^(i+1) >= 2^(i+1) — 2^k > x. All conditions hold -> y = 2^i-1 satisfies the given conditions.

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

    You are right. This leads to an $$$O(\log x)$$$ solution.

    The editorial tells us that $$$y$$$ must have at least 2 on bits — one matching $$$x$$$ and one not matching $$$x$$$. Also, $$$y < x$$$.

    1. If all bits in $$$x$$$ are on, i.e. $$$x=2^k-1$$$, then y cannot exist.
    2. If only one bit in $$$x$$$ is on, it must be the MSB and $$$x=2^k$$$. Any $$$y$$$ will end up greater than $$$x$$$, so $$$y$$$ cannot exist.

    If you discount these cases, then $$$x$$$ has an on bit in MSB and some on bits and some off bits afterward.

    One easy solution for $$$y$$$ is to copy $$$x$$$, turn off the MSB (so now $$$y<x$$$), and turn on all the other bits, i.e. $$$y=2^{k-1}-1$$$ where $$$k$$$ is the bit length of $$$x$$$.

    The time complexity is determined by counting the bit length of $$$x$$$.

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

      But the bit length is just a logarithm which can be found in a single operation.

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

        Within the constraints, yes. But if we want to measure the complexity when it depends on the number of bits, it's better to assume a generalized solution, and there is no actual way to find it in $$$\mathcal{O}(1)$$$ time for an arbitrary value of $$$x$$$. The 'single operation' you mentioned is possible only because the upper bound of $$$x$$$ is specified.

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

it is one of the best Div 3 contest..i have ever seen

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

cant believe the chance of getting wrong answer at e even if you understand the solution is not zero, wasted my time thinking there must be a perfect solution .

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

somebody from codeforces please change the contest from unrated to rated for me...

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

It is technically possible to solve the problem by fixing the value of y instead of the value of x, but it is significantly more tedious to implement.

Can anyone tell me if its possible to do this? I tried this but I think we can't just keep the maximum x for a given y (the order of processing matters and we don't know exactly what should be processed first or do we?) I'd really appreciate if someone can share the solution if they solved it by fixing y instead

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

    Yes, it's possible to do. Let's begin by considering a solution where we fix $$$x$$$ from the other side. For each $$$x$$$, we have segments $$$[y_i - R; y_i + R]$$$, where $$$R$$$ is the maximum possible value (which can be find by math formula or bin search) such that the considered segment lies within circle $$$i$$$.

    Okay, then the number of points for each $$$x$$$ will be the number of points that lie in at least one of those segments. This is a standard problem of finding the length of the intersection of segments, which can be solved using a scanline algorithm. However, it is harder to do for $$$x$$$ than for $$$y$$$, because the range of $$$x$$$ is $$$[-10^9; 10^9]$$$.

    In the case of $$$y$$$, its range is $$$[-m; m]$$$. Analogously, for each $$$y$$$, we have segments $$$[x_i - R; x_i + R]$$$, where $$$R$$$ is the maximum possible value such that the considered segment lies within circle $$$i$$$. Similarly, let's find the length of the intersections of such segments for each $$$y$$$. The final asymptotic complexity is $$$O(m \log m)$$$.

    Code 310266037

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

      Great! Was too focused on doing it in real time that forgot that I can store this segments and use scanline later as well.

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

Yeah, when the contest finished I was very angry as you said, but I learnt from you and you enforced me to learn more and be familiar with geometry, so sorry if I was angry or wrote that it was a bad contest maybe I didn't like it in the start coz I wanted to be an Expert, but now I will never forget the lesson that I should be good at geometry as the other things, so thanks so much ^_^

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

I liked this contest. I solved A-E in contest and E was awesome. Idk why people get triggered at these types of less traditional problems, they care too much about rating.

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

Div3 is more difficult than Div2 this time.

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

Could someone can explain the editorial of F more clearly for me,I'm a Chinese and a English noob,so I would appreciate it if someone would give me a better explanation(I can read the editorial,but it's too hard for a specialist to understand).

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

    i have an alternate solution that is much simpler

    for each $$$k$$$, count how many of those $$$2^{k}$$$ squares that can fit inside the range

    for $$$k = 0$$$ this is just $$$(q-p)(s-r)$$$

    for every other value of $$$k$$$:

    we must find the number of pairs $$$(u,v)$$$ so that $$$[u.2^{k};(u+1).2^{k}] × [v.2^{k};(v+1).2^{k}]$$$ fits inside $$$[p;q] × [r;s]$$$ $$$(u,v \ge 0)$$$

    which means it has to satisfy:

    $$$p \le u.2^{k}$$$ and $$$(u+1)2^{k} \le q \Leftrightarrow \frac{p}{2^{k}} \le u \le \frac{q}{2^{k}}-1$$$

    $$$r \le v.2^{k}$$$ and $$$(v+1)2^{k} \le s \Leftrightarrow \frac{r}{2^{k}} \le v \le \frac{s}{2^{k}}-1$$$

    from there finding the number of $$$(u,v)$$$ is trivial, and for each square, it would "overlap" with $$$4$$$ squares of size $$$2^{k-1}$$$, which means $$$4$$$ of them are replaced by $$$1$$$ square of this size, thus the result will be subtracted by $$$3$$$ times the number of squares

    code: 310097100

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

Interesting problems ,had to use high school geometry . I liked all the problems even though I wasn't able to solve last 3 problems

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

I love these ``heuristic'' problems! Really forces one to think outside of the box in terms of how to approach them.

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

does someone know the proof for the solution failing with probability 1.8e-20 in problem E

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

    I believe it has to do with the fact that even if you don't choose the "good" triangle you are still likely to cut off some points. And the existence of a "bad" triangle containing almost all of the remaining points means that the "good" triangle contains very few points.

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

For problem C, I think we only need to check all numbers with the binary form 11...11.

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

Nice Contest

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

problem G grind me a lot lol, i found that dp range can solve, but after all i can't find the dp transition state:LL

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

For C, i found a solution which runs in O(1) (or O(k) where k = complexity for builtinclz(), ive heard that its practically constant time):

int msb(int i)
{
    return i ? __builtin_clz(1) - __builtin_clz(i) : -1;
}

void xortriangle(int x)
{
    int y = x + 1;  // if all bits are set, then x + 1 only has 1 bit set;
    if (!(x & (x - 1)) || !(y & (y - 1))) cout<<-1<<'\n';
    else cout<<((1 << msb(x)) - 1)<<'\n';
}

basically if number has only 1 set bit or all bits are set then its not possible, since xor then is like regular addition there so triangle will always be degenerate there else i just used a slightly smaller number with all set bits, since xorring with that is guaranteed to result in some xor result which will be less than the sum

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

chromate00 As someone who has tried problem setting before, really curious as to how you made the test cases for E.

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

    Experimenting with multiple points on the same parabola helped create decent test cases. Some other test cases include points forming spirals, rounded to integer coordinates. It was a nightmare trying to make tests strong enough while keeping the non-collinear condition. We almost considered removing that condition...

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

Who else solved E without random probability! I couldn't prove but this worked https://mirror.codeforces.com/contest/2074/submission/310087663

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

Most concise O(1) solution for C 310203051

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

Where's the code?

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

solved E without caring about the limit of 75 queries

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

Why did my solution passed on Problem C and E

Problem C : 310037314 Problem E : 310096257

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

For 2074E - Empty Triangle, I don't know why this 310209003 got an AC. Maybe on luck. But it worked :)

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

Got a question, I finished my first contest ever. Why do i see no rating in my profile?

Got 2/7 right.

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

    For Div. 3 and Edu. Round, there will be a system test after the open hacking phase. After that, your rating will be updated.

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

    for div4 and div3, it usually takes time .

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

    Thanks @kakoujt and @karim__2

    I will wait for my rating. I have completed Div 3 A,B,C(TLE). Can i try Div 2? Or would it be harder.

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

      Yes, it would be harder .

      I think div2 A is as hard as div3 B but you can try it anyway.

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

failed to solve D but it's really a good problem (I didn't notice that m<=2e5 and i thought calculate each x will get MLE :( )

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

Can someone tell me why did my C submission works, I feel like it worked by accident

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

    It actually is an accident but high probability that you will find a number at random that satisfies the condition

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

can someone pls help me with this I do not understand why we are looking at probabilities for problem E isn't it obvious after choosing good triangles(with least no. of hidden points) 7 times will get the desired triangle? that is in total of 7*3 queries?

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

    We don't know which triangle is good and therefore choose a new triangle randomly. Otherwise, it might be the case we choose the worst triangle at each step, which will result in asking more than 75 queries. But when randomising choices, probability of such cases are very low.

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

Nice contest to understand triangles in depth and C was really nice for a XOR question

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

For problem E, i will ask x and i,j,k three triangles formed by three points, and then get three points again, and repeat this process. I think this convergence speed will be very fast, and no heuristic algorithm is used, could someone tell me why? 310067778

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

My Solution to E is something like a BFS, I have no idea why it works mathematically, someone proving it would be nice, my guess is it might be doing something very close to what the editorial does. Also, for C, I brute-forced the code on my machine to find a pattern that for an x what is the smallest value of y. I noticed that the answer was always of the form (1+ 2^n)< x. If such a n did not exist the answer is -1. I iterated over all valid n's and solved the problem in log2(x).E: 310096412 C: 310115607

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

    For E, I came up with the same approach 310209003, surprised by it. I cannot prove it mathematically either. I now think that it is a coincidence because:

    1. The starting condition may not include all 1500 points

    2. The initial triangle is split up into about 50 small triangles when reaching 75 queries. For random data, the probability of getting a triangle with no point inside it is considerable.

    3. Possibly the problem maker did not think of this BFS approach, so it is not hacked.

»
5 days ago, # |
  Vote: I like it -9 Vote: I do not like it

E is the worst CP problem I have ever seen, nothing beats a problem which depends on luck.

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

    Randomized algorithm is an important topic in adademics and you should be at least aware that good randomization can significantly reduce the running time.

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

When I solved 6 problems:Great!Yeah!Killed the F in last 5 min before Ended! System Test:Hello. (Rejected on the test 11 of problem D)

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

who hacked the D problem? So many competitors got WA on TC11 after system testing!(Unluckily I am one of the poor guys) how does the idea come up??!!

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

    it is integer overflow in most cases

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

      SAD!the significance of "#define int long long"!!!

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

        I really hate the fact that there was not even a single test case during the contest that would lead to overflow, otherwise i would have saved myself from wa on test 11.

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

          KIND OF fraud,O(∩_∩)O(helplessly)

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

about C,I have a $$$O(log_2{n})$$$ approach,but I don't know if it's right or not。https://mirror.codeforces.com/contest/2074/submission/310033364

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

For Problem E, it actually pases with failure probabilty of at most $$$1e-33$$$. To see this, consider the event that each point stayed alive after 75 queries. This happens with probability at most $$$\frac{1}{3^{75}}$$$. Using a union bound, we can see that the probability that any point stayed alive after all 75 is at most $$$\frac{n}{3^{75}}$$$, which is somewhere near 1e-33. (Note that union bound doesn't require any assumptions about dependencies (or lack of) in ther random events).

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

I was initially curious why you were calculating the expectation when solving problem E. It turns out that as long as the probability is close enough to success, the program is considered correct. Given that, this means there's still a very small chance that the code won't pass when submitted. This is the first time I've seen a problem like this.

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

    This probability thing is actually quite common. For example, using hashes (like set or dict in Python) is also probabilistic which takes expectedly $$$\mathcal{O}(1)$$$ time with proper randomization, but it can also take $$$\mathcal{O}(n)$$$ time in the worst case with extremely low chance. Without randomization they can be easily hacked by manually creating the worst case.

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

chromate00 Problem D was extremely interesting. I didn't figure out the solution quickly, but I experienced incredible pleasure at the moment when the solution algorithm finally appeared in my head. Thank you)

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

Just wanted to share my solution to F :)

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

Can anyone explains why this brute force solution passes? I haven't be able to proof the complexity, but I think it's probably $$$O(log^2(r))$$$.

Fun fact
About hacks in F
  • »
    »
    4 days ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    I checked your hacked submission and it seems the number of recursions alone is $$$\mathcal{O}(\log^2{r})$$$, and it runs a $$$20$$$-time loop, which actually comes from the value of $$$\log{r}$$$ so the solution can be considered $$$\mathcal{O}(\log^3{r})$$$. Plus, the statements inside the loop are quite costly, having a number of division operations. I counted the number of calls to f and the number of loops and there were $$$702$$$ and $$$10895$$$, respectively for one test case of the hack.

    Any real $$$\mathcal{O}(\log^2{r})$$$ solution shouldn't be struggling to pass, as it's only like $$$400$$$ per test case, so even with maximum test cases it operates only around $$$4$$$ million times, which should be safe even with very large constants. You can check mine which is also $$$\mathcal{O}(\log^2{r})$$$ and passed only in $$$155$$$ ms.

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

    The loop of your passed version, on the other hand, seems to run only the required amount of times by tightly setting the iteration range, so it is actually $$$\mathcal{O}(\log^2{r})$$$. Its constant is fairly huge, but it is still more than enough to pass.

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

Tried solving E with a random approach and still can't figure out why it got AC. Is there a proof for this solution?

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

    this method is equivalent to creating a full trinomial tree using BFS. Imagine that each time you take a node out of the queue, you randomly assign the value of that node to three children. — Your probability of success is the probability that no child node of the process has a zero. The higher up the tree you go, the higher your probability of passing. Suppose the height of your tree is x . Then there's a value that keeps getting smaller by x-1, each time randomly changing to [0,x]. And the smaller it is, the higher the probability that the next reduction will result in a 0 in its children. But you chose BFS over DFS, which makes the tree fat and short, which is probably the worst way to do it. But the probability of passing in completely randomized data is still not bad.

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

      Here's a DFS implementation which exceeds the query limit. The question relies too much on probability that using a random number generator between [0,2] to replace a vertex gives AC, but a well thought out approach may exceed the limits.

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

        For random data, DFS should pass with a higher probability than BFS.

        The problem solver probably expected that some people would try a similar strategy, so a DFS that enumerates the children in a fixed order can be easily hacked by an adaptive interactor.

        that's why the solution lets us choose one of the three points at a time at random to avoid the adaptive interactors from working.

        The BFS passes with worse probability, and can be hacked with relatively high probability by a set of perfectly evenly distributed points.

        any solution, whether DFS or BFS, executed in a particular order passes or fails seems to depend entirely on whether or not the questioner has considered the method and given a strategy for targeting the data and the interactors, which makes this question controversial.

        I think this question should use completely random data, and then slightly increase the amount of data to make it more rigorous. This would suggest to the participants that they should try to find a reasonable randomisation scheme rather than just pass with confusion.

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

          There are more matters that must be and have been considered than what you have enumerated.

          For example, completely random data would not prevent deterministic heuristics so well in the first place, because the expected number of points on the three sub-triangles is already around $$$n/3$$$. These data experimentally have been very bad at killing those solutions.

          On the perspective of number of test cases, it was practically impossible to increase the number of test cases in one input. There exists no algorithm faster than $$$\mathcal{O}(n^2)$$$ to determine if there exist three collinear points, unless there exists one for 3SUM (due to a reduction from 3SUM to 3-COLLINEAR). Even worse, there is a severe issue of I/O bound in interactive tasks, making it impossible to allow so many interactions in the first place.

          On the perspective of number of inputs, it was impossible to add more of them. It may and will kill the judging queue during the contest. $$$35$$$ is already quite excessive for the number of inputs in a Div3E.

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

can someone please help me find the mistake in my solution for G.

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

I got hacked on D, can anyone explain difference between this 310321442 and this 310321612 submissions? Why python dict be that way? Is this hashing problem? Realy sucks when you cant even understand where the problem is

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

when I saw these all(up to D) problem I was not able to get what was going on. These are problems are related to geometry and I hate geometry so I frustrated on author of the contest. But now I understand. I learned lot from this contest thank you!. Also I was only able to solve only first 3 problems.

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

E and F are two sides of the same coin, and as interesting as they are, they drive me crazy.

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

Problem G refreshed my understanding of dynamic programming. It's a great problem!

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

long long is necessary in D. It's a pity that I overlooked it.

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

For problem G,

We only wanted to split our range into three disjoint ones

what was the motivation for this?

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

    Notice how a triangle splits the problem into $$$[L,i-1]$$$, $$$[i+1,j-1]$$$, $$$[j+1,k-1]$$$, $$$[k+1,R]$$$. After we know that the problem of $$$[i,k]$$$ will be split into $$$[i+1,j-1]$$$ and $$$[j+1,k-1]$$$, what we need now is a way to split $$$[L,R]$$$ into $$$[L,i-1]$$$, $$$[i,k]$$$, $$$[k+1,R]$$$.

»
42 hours ago, # |
  Vote: I like it 0 Vote: I do not like it

I don't know with whom my E problem code matched but you skipped all problems because of that and I didn't copy the problem from his I don't even know him. Please give my ratings back. and you all wrote it coicidently matched then why removed my ratings

»
42 hours ago, # |
  Vote: I like it 0 Vote: I do not like it

I don't know with whom my E problem code matched but you skipped all problems because of that and I didn't copy the problem from his I don't even know him. Please give my ratings back.

»
42 hours ago, # |
  Vote: I like it 0 Vote: I do not like it

Loved the editorial for C and E. Thank you.

»
40 hours ago, # |
  Vote: I like it 0 Vote: I do not like it

I hate E!!!

»
8 hours ago, # |
  Vote: I like it 0 Vote: I do not like it

My solution for F, with the observation that if we zoom in by 2 (multiply each number by 2), we still get the same answer as we simply increase k by 1

func run(a []int) int {
	res := 0
	for a[0] < a[1] && a[2] < a[3] {
		if a[0]&1 == 1 || a[1]&1 == 1 {
			if a[0]&1 == 1 {
				a[0] += 1
			} else {
				a[1] -= 1
			}
			res += a[3] - a[2]
		} else if a[2]&1 == 1 || a[3]&1 == 1 {
			if a[2]&1 == 1 {
				a[2] += 1
			} else {
				a[3] -= 1
			}
			res += a[1] - a[0]
		} else {
			for i, v := range a {
				a[i] = v >> 1
			}
		}
	}
	return res
}