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

Автор NemanjaSo2005, история, 3 года назад, По-английски

Hello, Codeforces!

Riblji_Keksic and I are glad to invite you to Codeforces Round 911 (Div. 2), which will start on Nov/26/2023 17:35 (Moscow time). You will be given 6 problems and 2 hours to solve them.

The round will be rated for participants of Division 2 with a rating lower than 2100. Division 1 participants can participate unofficially.

All problems are invented and prepared by Riblji_Keksic and me.

Special thanks go to n0sk1ll and TimDee for their great work during the testing process of the round.

And of course, I would love to thank the people who made this round possible:

We hope that you will participate and enjoy the round!

Update 1: The score distribution is 500 — 1000 — 1250 — 2000 — 2250 — 3000

Update 2: Congratulations to the winners:

Div. 2:

  1. HimenoTowa

  2. vflower

  3. eloge

  4. sadness

  5. Im_dik

  6. Gold_Record

  7. Haaland

  8. mban259

  9. hazzler

  10. 111445

All participants:

  1. fallleaves07

  2. turmax

  3. A_G

  4. ppavic

  5. minato

  6. mzen

  7. potato167

  8. Rubikun

  9. Sugar_fan

  10. emthrm

First solvers:

A. people_plus_plus in 0:01

B. A_G in 0:04

C. WLZ in 0:04

D. A_G in 0:12

E. Grindforces123 in 0:17

F. turmax in 0:26

Update 3: Editorial

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

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

Codeforces Round 911 whats your emergency?

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

Definitely a round I enjoyed testing! NemanjaSo2005 Riblji_Keksic orz

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

Canon round.

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

As a tester,the problemset is dramatic.Hope you enjoy it :)

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

Yet another Serbian round?

orz

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

Hope I can reach the specialist again in this round.

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

THE BESTEST IN THE WORLD EVER 100% SERBIAN ROUND

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

Back to back div2s every day let's go

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

As a tester, the problems are exciting!

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

It is the first time for that guy to prepare a contest, I am a little worried ...

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

Good luck for everyone! ;)

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

As a tester, NemanjaSo2005 Riblji_Keksic orz for preparing amazing problemset!

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

I love this contest marathon we've ended up having! ;)

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

3 rounds in 3 days wrooom!!!

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

Another serb round???

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

Good luck everyone ^_^

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

A 911 contest on 26/11 ? The numbers are too heavy to be considered a coincidence

»
3 года назад, скрыть # |
 
Проголосовать: нравится +7 Проголосовать: не нравится
Division 1 participants can participate :
»
3 года назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Hoping to reach pupil today

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

30000 score problem, nice!

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

am i seeing it correctly, or the score distribution for problem F really is 30,000(bang).

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

NemanjaSo2005 best problem setter!!

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

Fun fact : $$$\text{E + F} \gt \text{A + B + C + D}$$$.

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

Такое хорошее настроение было и его просто испортили 5-м примером из условия задачи A...

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

    Почему

    • »
      »
      »
      3 года назад, скрыть # ^ |
      Rev. 2  
      Проголосовать: нравится +6 Проголосовать: не нравится

      Потому что невозможно сразу понять, что переливание происходит в любую клетку, а не только в соседнюю. Также по примерам нарисовано, что они переливают в соседние клетки. То есть, на картинках в условии только в соседние переливание. Запутали окончательно. Ну а мозг человека помнит только три последних прочитанных абзаца. Надо нормальные примеры делать (на которых переливание в любую клетку), чтобы это контрилось, тем более это задача A. Судя по тому, что было общее уведомление по этой задаче, у многих такая же проблема.

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

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

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

        Поверь мне, ты не видел изначальную версию условия задачи) Как раз там и было то самое двоякое понимание условия о которым ты говоришь)

        В нынешнем варианте условия лично не вижу никаких проблем (да, задача сама по себе не лучшая, но это было сказано и авторам и координаторам, всё же я думаю что им лучше решать, каким раунду быть)

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

          Да я просто ушёл с контеста после того, как на три моих вопроса по задаче A ответили "без комментариев".

          На 34-й минуте контеста, в итоге, появилась массовая рассылка:

          Обратите внимание, что с помощью второй операции вы можете переместить воду из ячейки в ячейку, которая не обязательно является соседней с ней (в частности, между исходной и целевой ячейкой может быть заблокированная ячейка).
          

          Если бы этот абзац написали в качестве ответа, я был бы счастлив, или если бы это было в примечаниях к примерам было, был бы ещё более счастливым.

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

            Ну, уж к ответам на вопросы я не как не могу отнестись (

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

            Возможно, абзац про перенос в любую клетку был в версии когда я тестил. После "упрощения" условия его убрали, увы вычитать условие (особенно на русском) заново лично у меня уже времени не было) Да и вспомни, что условия переводят не авторы, а координаторы (обычно), и они тоже порой могут ошибаться)

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

        Ну а чтоб не тратить время можно было начать решать с задачи Б ;)

        Ведь задача платформы (отчасти) — обучение, а не рейтинг! =)

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

Can someone tell me whats the job of testers, if you need to correct the problem statement, text case explanation by a big margin in contest time? This is disgusting.

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

Keksic left on seen ......

Me: Us bro us

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

If I knew more algorithms/ theory about Number theory could have got D, the main idea is so obvious

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

queueueuueueueueueueforces

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

SpeedForces

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

QUEUE!!! ANY TIME EXTENDED?

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

I will keep trying to solve div2 problems :) I hope one day I will overcome the obstacles

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

Problem B is a nice application of the classical puzzle:

A shop sells 1 chocolate at $1. you can exchange 3 wrappers for 1 chocolate. if you have $15, how many chocolates can you get?

Problem C is a gentle introduction to Tree DP (although arguably you could remove the DP array and deal directly with DFS return value instead).

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

    How is b related to that puzzle?

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

      If you have $$$(x, \ y, \ target)$$$, assuming $$$x \leq y$$$, then you could first convert it to $$$(0, \ y - x, \ target + x)$$$. Then, for each $$$(y - x)/2$$$ chocolate of the middle kind, you utilize one chocolate from the end to convert it to $$$(1, \ y - x - 1, \ target + x - 1)$$$.

      Hence, we need at least $$$(y - x)/2$$$ chocolates of the third kind for this to be possible.

      The catch (in this problem, as well as in the puzzle) is that you don't have to directly check $$$(y - x)/2 \gt target + x$$$, since chocolates/wrappers are generated on the fly, so you could utilize the generated ones as well.

      Submission

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

        For this question it is always possible if the other 2 have the same parity. The logic for that is you can keep going back and forth until the other 2 are the same value.

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

D is too hard for me :(

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

This is almost the same as B

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

How to solve D?

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

Why my this solution for problem C is giving TLE — https://ideone.com/uV3iX5

can someone pls help

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

    Per-leaf approaches can die vs. trees shaped like long-handled brooms. Your early-out will only work if the earlier answers are better than the ones that come afterwards. Otherwise, it's possible to get stuck traversing the treetrunk/broomhandle repeatedly as you improve your overall answer for each leaf.

    To avoid this, you can use the return/post portion of a dfs, or you can do a full topological sort. Basically you want to avoid repeatedly processing vertices, but you also want to make sure a vertex is processed after all of its children.

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

How to solve D?

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

i liked problem C and was very satisfied by solving it.

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

How to solve B?

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

Could someone please tell why I'm getting TLE? 234480936

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

I wonder what is the solution for D... There are a couple of thoughts on factorization, but nothing seems to fit in time limits.

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

B > C ;)

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

not saying it was a bad contest at all, but problem D was very similar to problem 645F(https://codeforces.me/contest/645/problem/F) such that it was the case of k=2 for that problem.

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

    I just read it and it doesn't seem in any way similar, unless I don't know actual solution. However, i don't think that comparing the trick used in solution/solution itself is best way to describe similarity of two problems.

    Still, I may miss something, so could you please elaborate about what exactly they're similar in? =)

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

Cool problems, Thanks!!

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

Is answer in D smaller than long long max?

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

Is $$$E$$$ following? Build condensation of graph (find strongly connected components and make them 1 vertice, the graph becomes acyclic). And then just dp on DAG to find path with greatest number of vertices (sum not the vertices in condensation, but for each vertice in condensation number of original vertices in it). (Why do we have to minimize some cost then? It doesn't change the problem)

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

Any hints for F?

  • »
    »
    3 года назад, скрыть # ^ |
    Rev. 2  
    Проголосовать: нравится +22 Проголосовать: не нравится

    i think its something along the lines of:

    • figuring out that at most O(logn) operations will be done on an array A
    • do the operations on the whole array and memorize the array after every query, lets call A_k array A after k operations
    • to solve queries [L,R], if you consider just the elements of A_1 in [L,R], lets call the array of those elements B, you can see at most 2 elements(one from the front and one from the back) should be added to B
    • then you can just simulate the queries(smartly) only looking at the left and right boundaries and maintaining the left and right boundary in A_k that corresponds to the array that is left after simulating k operations on the array in interval [L,R] in A

    UPD: you will also have to add O(logn) elements to the front and the back of the array that you are maintaining in the query while simulating the operations(because some elements from the begining and the end of your query interval could have been deleted by the rest of your array)

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

Is D mobius?

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

I'm willing to bet money that problem A was inspired by Minecraft.

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

Minecraft water logic in A, nice

»
3 года назад, скрыть # |
Rev. 2  
Проголосовать: нравится +8 Проголосовать: не нравится

I enjoyed thinking about problems ABCD,Thanks you for the contest. by the way any hints for optimizing (n ^ 2) solution of problem D

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

Please tell me what topics I need to solve problems like D and E (also to become expert: in general) thankyou so much :3

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

    problem D was a combination of number theory(gcd), combinatorics and inclusion-exclusion principle

    problem E was a combination of graph theory(for SCC compression) and simple DP on DAG(to calculate maximum length of a path and its smallest value)

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

Was too rusty on my Möbius reduction to solve D in time sadly :c. ABC were good, as well as E, which wasn't straight up untouchable while still proving hard!

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

Problem A is basically minecraft infinite water source.

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

please quickly upload the editorial, so that I can understand problem D

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

D is very interestring problem... i like it

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

freaking hard D

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

In problem C, why my code is TLE when I use dfs by recursion, and I AC when I use dfs by Stack ?

Code TLE: https://codeforces.me/contest/1900/submission/234465423

Code AC: https://codeforces.me/contest/1900/submission/234469294

Besides: My other Code use O(nlog(n)) but it's TLE : https://codeforces.me/contest/1900/submission/234458841

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

Feedback: In my opinion, B and C were a little too easy, and D was a little too hard. Maybe not, but the jump in difficulty from C to D was really huge for sure. Either: 1) make B,C harder or 2) make D easier (or a little bit of both). Other than that, that was a great contest, especially given that it's your guys' first time setting, good job!

»
3 года назад, скрыть # |
Rev. 3  
Проголосовать: нравится +7 Проголосовать: не нравится

Thanks for the authors for this round ! Here is my advice about the problems (uncorrelated to my performance)

A
B
C
D
E

Congratulation to the authors though, the problems were still of good quality and I appreciate the fact that AB were not left behind !!

Looking forward to another round of yours :))

»
3 года назад, скрыть # |
 
Проголосовать: нравится +7 Проголосовать: не нравится
»
3 года назад, скрыть # |
 
Проголосовать: нравится +2 Проголосовать: не нравится

Solving Backwards D-C-B-A, hope I will reach CM one day, By the way very nice problem D, and glad that I solved it in the contest itself.

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

Can someone who was able to solve E can explain why this won't work for E, or report any points i missed:

code
»
3 года назад, скрыть # |
 
Проголосовать: нравится +2 Проголосовать: не нравится

For problem D,any particular reason we are not required to output the answer mod some prime. In the current form, the maximal answer can $$$nC3*max(a[i])$$$ which if not calculated carefully (finding the ncr part and then multiplying) can overflow.

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

I feel like problems today were more educational than usually, you just should know the main approach for problems like these and then they're easy, otherwise really hard to come up with

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

Nice contest. Problems were well designed and fun to solve. Thanks for the round NemanjaSo2005 Riblji_Keksic and all testers.

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

Yo it was a great contest!

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

There was a long queue in last 10-15 minutes. Then still it's considered as rated round. Disappointed :(

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

good contest

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

Please tell me how you think about problem D and what is the breakthrough point?

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

How did people_plus_plus solve a problem in 1 second???

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

Can someone Please explain why I am getting a TLE in this solution for problem C 234510811

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

I got message from the system that my solution of C is same as other coder. my code: https://codeforces.me/contest/1900/submission/234467535 other's code: https://codeforces.me/contest/1900/submission/234459009

i didnt copied anyone's code, the solution is very straightforward. Easy codes can look similar. Please remove this penalty

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

I got a message from the system that my solution of C coincides with another code:

my solution: https://codeforces.me/contest/1900/submission/234456967

other code: https://codeforces.me/contest/1900/submission/234468345

Just see the difference between the coding style between those two codes.

I have no idea how did this happen. I wrote a very simple solution just using BFS. i think it is normal that easy codes look similar to each other.

Please reconsider this and remove my penalty.

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

Hey @MikeMirzayanov i have received this System mail yesterday

Attention! Your solution 234440272 for the problem 1900C significantly coincides with solutions KatsuKimechi/234437376, anikethend1234/234440272. Such a coincidence is a clear rules violation. Note that unintentional leakage is also a violation. For example, do not use ideone.com with the default settings (public access to your code). If you have conclusive evidence that a coincidence has occurred due to the use of a common source published before the competition, write a comment to post about the round with all the details. More information can be found at http://codeforces.me/blog/entry/8790. Such violation of the rules may be the reason for blocking your account or other penalties. In case of repeated violations, your account may be blocked.

I know violation of rules of contest is not good. But i fact i have not done any kind of such thing.But yesterday i notice that the guy you talking about had used my CP template and code before this contest also. He used my CP template i the same contest also(you can check my previously solved solutions for reference).I think I have not done any kind of voilation of rules. Please check into the matter once.

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

Does anyone have any idea why this dfs fails pretest 6?

Please refer to the solve() function. https://codeforces.me/contest/1900/submission/238214972

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

For C what is worong ``` ll ans = 1e8, n;string s; ll l[maxn], r[maxn];

void dfs(ll v, ll op = 0){ if (l[v] == -1 && r[v] == -1) ans = min(ans, op); if (l[v] != -1) dfs(l[v], op + (s[v] != 'L')); if (r[v] != -1) dfs(r[v], op + (s[v] != 'R')); }

void run(){ cin >> n >> s; for (int i = 0 ; i < n ; i ++){ cin >> l[i] >> r[i]; l[i]--;r[i]--; } dfs(0); cout << ans << nl; }

```