Автор Errichto, 8 лет назад, перевод, По-русски

Всем привет.

VK Cup 2017 Раунд 1 пройдет 18-го марта в 18:35 по московскому времени (время в вашем часовом поясе), параллельно состоятся обычные div1 и div2 Codeforces Round #405.

Соревнование «VK Cup 2017 — Раунд 1» предназначено для команд, вышедших из квалификационных раундов. Лучшие 400 команд пройдут дальше в Раунд 2, у остальных же будет еще один шанс пройти дальше в Уайлд-кард Раунде 1 в Апреле. Те, кто не участвуют в VK Cup, могут принять участие в Codeforces Round #405 индивидуально. Все три раунда будут длиться 2 часа, все три будут рейтинговыми.

Хочу поблагодарить: KAN за помощь в подготовке соревнования, MikeMirzayanov за то, что мы тут, AlexFetisov за тестирование задач и компанию ВКонтакте за прекрасный ежегодный турнир.

Я являюсь автором задач и надеюсь (и ожидаю?), что вам они понравятся. Помните, что вы можете прочитать много задач и попробовать решить те, что найдете наиболее интересными.

Желаю вам насладиться раундом и избежать глупых ошибок.

Проблема с регистрацией на основной раунд исправлена.

div2: 500-1000-1500-2000-2500
div1: 500-1000-1500- 2250 -2500
vk-cup: 250-500-1000-1500- 2250 -2500

Поздравляем команды, занявшие первые места в VK Cup Раунде 1:

  1. Zlobober, zemen
  2. LHiC, V--o_o--V
  3. Arthur, kefaa
  4. map, Babanin_Ivan
  5. felix, Trumen

Также поздравляем победителей в параллельных раундах!

Div. 1:

  1. -XraY-
  2. Laakeri
  3. Lewin
  4. dotorya
  5. RAVEman

Div. 2:

  1. rupxup
  2. YES_RPG
  3. T0RRES
  4. HXLLL
  5. Len

Разбор тут.

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

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

limak is back :)

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

will the VK cup round 1 questions be available in english??
Or atleast will the questions of VK cup round 1 be a subset of union of rounds 405 div1 and div2 ??

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

Number of problems?

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

    There are 7 problems. 5 for each division and 6 for participants of VK Cup. In more detail: div2 gets 1-5, div1 gets 3-7, vk-round1 gets 2-7.

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

"May the Force be with you"

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

During the contest, remember that you can read many problems and try to solve those that fit you most

What does this mean? Does it mean that it is possible that A could be harder than B and the order is toughness will be random.

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

When I registered for VK Cup Round 1 Contest,the system showed me the information which told me that I registered for Codeforces Round #405(rated,Div2,based on VK Cup 2017 Round 1) before and I needed to unregister before continuing.However,I didn't register for Codeforces Round #405(rated,Div2,based on VK Cup 2017 Round 1)at all,what's the matter?And please tell me how I can successfully register? (I competed in the qualification round and got qualified.)

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

    In case if your name does show up on Codeforces Round #405(rated,Div2,based on VK Cup 2017 Round 1)'s registrant list, you can unregister yourself by going to http://mirror.codeforces.com/contestRegistrants/791/friends/true and click the "x" next to your handle.

    If that's not the case then I don't know D:

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

      I didn't find myself in the website you offered,so maybe it's not the case.

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

        Yeah I just checked that as well. I suppose that's not the case then...

        Hopefully someone can help you soon.

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

    I have the same problem and don't know how to fix it :(

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

    Yeah, the same information was shown to me and my partner. It said that I have registered for div.2 and my partner has registered for div.1. I don't know what to do to manage this, as in fact we have done nothing before. Hope someone could solve this matter. I don't want to miss the chance to take part in VK Cup.

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

      Just for information: you are not allowed to take part in Round 1 if you are not Russian-speaking. I urge you to respect the organizers and other participants. In addition, Codeforces team did an additional job in order to allow parallel participation of users from all over the world.

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

        Yeah thats fine.But if someone had by mistake written qualification round and qualified then now he has no other choice than to participate in round 1 because it now doesnt allow to register for parallel round

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

-Вк кап только для русскоязычных.

-анонс только на английском.

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

I can't register for Round 1. Each time get this message

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

Проблема с регистрацией на основной раунд будет скоро исправлена.

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

Mike to the rescue.

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

How is the average rating of a team calculated? And how will the ratings be updated for the official round?

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

I always meet extremely frustrating bugs. LOL ...

Thank you for your wish.

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

Допустимые языки C/C++, Pascal, Java, C#, Python, Ruby, Perl, PHP, Haskell, Scala, OCaml, Go, D, JavaScript и Kotlin.

С чем это связано? В квалификациях я писал на Rust, а теперь не смогу?

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

I know that you love it Errichto, especially for you I'm posting it earlier than normally. :3

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

Excuse me, the terms of agreement of this contest are written in Russian :( (I suppose it is same as usual.)

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

Is is the first time on Codeforces history that a problem gets only 250 points score :\

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

    No, sometimes you have a Div 1 + Div 2 round with a Div2-C problem that is only 1250 points worth, so Div1-A (which is the same problem) is only worth 250 points.

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

      Frankly, the VK Cup A should be worth 0 points as the corresponding Div2B problem is worth 1000 points...

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

    For example, Task A from Codeforces Round #329 (Div. 2)

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

    Smooth dynamic scoring will also give 250 for most A's, as is described in this post. I met with a 250-point problem A on my first contest on CF :)

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

Будет ли сдача задачи по времени влиять на балы?

Иными словами правила стандартные?

»
8 лет назад, # |
  Проголосовать: нравится -12 Проголосовать: не нравится

May be this contest bring high ratings to everyone. All the best :)

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

"May the logic be with you."

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

Rating prediction: div1 div2

Рейтинг команд мои приложением, к сожалению, пока не рассчитывается.

Extensions:

Have fun & high rating:)

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

Poland STRONK!!!!

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

WTF difficulty?

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

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

D is cool :)

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

    Do you know how to solve it?

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

      You should solve problem for one vertex and solve for other vertexes using answer of a parent.

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

        Still don't understand. Could you elaborate, please?

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

          You basically root the tree in any node and do two DP/DFS passes:

          First, compute the solution for all subtrees — you can easily do that by storing number of nodes in distance d mod k from the root in current subtree. The solution is then the sum of jumping distances in all children + number of nodes in distance d mod k == k-1 in all children.

          In the second pass, you just need to compute remaining distances using DP values in parent of every node: sum of distances above the node = sum of distances above its parent + sum of distances in all parent's children except for the current node + the same trick with modulo (index hell inc.)

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

      Tried using centroid decomposition.... Still got a TLE on pretest 9... I guess I need some optimization

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

      No

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

From last 5 minutes, when I am clicking on Hack a Solution, page does not open. Is this due to slow internet connection or everybody else is facing a problem?

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

    That's frustrating... a lot of solutions for B in my room were wrong -- mine included -- and I couldn't hack anything at the end of the contest =|

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

    I had 3 successful hacks on DIV 2B

    4 4
    1 2
    2 3
    1 4
    3 4
    

    answer is NO

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

The hacking system seems to be down for me :(

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

Hope all my solution passes and I will finally become candidate master.

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

is there any better order for (DIV1)C than n^5 ?

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

How to solve Div 1 C. (unofficial) ?

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

My brain after solving Div1-B.

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

RIP RATINGS...

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

submit C 10 seconds before the end of the contest, waiting.. waiting...

Contest is over !! submission not there

good job servers, this website is so laggy these days

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

Div 2 Problem D is a nice Problem :D

Someone explain his solution please :D

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

Suspicious

»
8 лет назад, # |
  Проголосовать: нравится -20 Проголосовать: не нравится

I am the god of hacking (Problem A in VK Cup)

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

Div1D pretest 9?

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

When u have coded the solution to easy problem in a contest and the computer crashes and never reloads till the end of the contest.

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

When will be rating updated ?

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

Is div 2 D supposed to be a lazy propagation segment tree after doing dfs ordering?

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

    No, it was just a dp on tree problem. For a node add the answer for its subtree and then add answer for all its siblings. For this you just need to store at each node frequency of nodes in subtree with distance%5.

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

      I was doing this, but I couldnt figure out how to get the distances for the paths that go through the father node.

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

        Just go on updating the parent node from it's children node. All the nodes in children's subtree will reach parent node in just prevDistance+1.

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

      It also can be solved using centroid decomposition.

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

На чём валили первую задачу?

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

IMO the problems are a little harder than usual, but are very nice. How to solve Div1 D?

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

    The editorial is ready but it will be imported only after the system testing. Sorry for the inconvenience.

    And I'm glad you liked the problems.

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

      I don't know about Div1, but Div2 set of problems deserves ⭐⭐⭐⭐⭐

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

        "rated"?

        EDIT: If you didn't like problems, I will be glad to hear what exactly was bad for you. Maybe I can avoid it in the future.

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

          He meant 5 star rating I guess.

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

            Hah, I wouldn't ever think that there is ambiguity in my comment =)
            I meant the problems are superb, like luxury 5 star hotels =)


            I see what's the problem — in different browsers these stars look differently.
            In my main browser they are of gold-yellow color.

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

      When the system testing begins?

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

hack test for problem A (VK Cup): n = 65538 m = 98305 and any edges which unite all 65536 vertices in one component.

let x be number of vertices in component

let y be number of edges in component

Who wrote if (x * (x - 1) / 2 != y) puts("NO") and used int32, failed on this test.

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

How to solve div2 C?

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

what's wrong with this output A A A Aa Aaa Aaaa Aaaaa Aaaaa in pretest 1 problem c Div2

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

On task D, div 1, my solution in O(n2) got AC, weak tests :\

An example on which I get TLE: n = 3·105, ti, j = (i+j % 2 ? -j : j+1)

Link to solution

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

    It seems that there is more than one O(n2) solution that got AC. I tried really hard to prepare tests in this problem but I didn't succeed. I'm sorry for that.

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

Кто знает? Почему CF-Predictor не работает для VK round 1?

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

    я знаю:) потому что не реализован подсчет рейтинга команды. Если у меня будет время — пофикшу до второго раунда

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

Tnx for the not copied contest :D

When are we able to solve the problems on problemset?

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

If I took 401 place but 399 place was taken by two people, will I participate in the 2 round?

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

Well, I had some frustrating bugs.

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

Добавьте в архив задачи.

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

Could some good soul who knows python please explain why this code gave runtime error in pretest 11 which has n=m=150000?. This isn't the first I've got such an error doing DFS in python. I really want to know as I'm finding it impossible to figure out on my own.

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

Buggy Div2.D !! :D

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

What a pleasure to solve some really original and less typing problems.

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

Happiness is getting into the darker shade of blue:)

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

wtf

is it machine link?

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

In Div 2 B, I used the fact that each in each connected component there should be an edge between each pair of vertices. Hence the number of edges given should be equal to — summation x*(x-1)/2 for each connected component, where x = size of the connected component. I used int and got a WA and when I replaced it with long long it got Accepted. Now my question is if the answer has to be "YES " then sum should be <= 150000 (since that is the range of M in the question) so int should suffice then why did I get a WA?

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

    actually the number of nodes present in a connected component can be of the order 10^5. So if x=10^5 and it is int then (x*(x-1))/2 will overflow. This is the reason why u got WA

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

Hello.All my submissions are not evaluated yet. They are showing 'skipped' in my profile. Can I get to know the reason behind this?

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

It seems like the max rating and the rating graph has been updated, but the actual rating shown in the profile has not.

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

Ahhhhh finally pass problem E. Just a tiny bug in my reference of Half Plane Intersection, which has been used to solve ten or more problems. TAT....

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

It seems, that Div2C has some duplicate tests in the final test set, most likely due to multiple hacks with same values or something similar.

More exactly, tests #41 and #55 as well as #42 and #45 are the same. I guess this is some sort of bug? Probably not only for this problem?

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

Why is it that the graph and the max ratings have been updated but the present rating has not yet been updated?

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

Errichto Do you really think it's unprofessional to mention the sponsor name in the statement or that's just to match the problem requirments? If yes, why?

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

    I think it's fine. If I thought it's unprofessional, I wouldn't prepare such a problem.

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

Что-то случилось с командой hotline. Вчера участвовали как и все рейтинговые команды, сегодня все выглядит так, как будто мы участвовали неофициально, а попытки проигнорированы.

 Скриншот

В чем может быть проблема?

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

    Попытка проигнорирована выдается за плагиат кода. Возможно еще есть причины, но это единственная о которой я знаю.

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

      Может у кого-то были похожие ситуации? Я точно знаю, что писал решение сам, поэтому было бы интересно узнать, правда ли это связано с плагиатом, и если да, то с чьим решением моё оказалось настолько похоже, что его приняли за плагиат.

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

        Может быть писал на ideone и оставил код публичным? Его тогда рандомные зеленые челики могли отыскать в списке последних кодов.

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

          Да, похоже случайно запостили код с public доступом :(

          Понятно, что лучший способ избежать таких ситуаций — это следить за доступом к своим исходникам, а, чисто теоретически, может ли тут адекватно сработать какая-нибудь арбитражная система, основанная на рейтинге, например?

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

Problem B 63ms solution :) In each group of friends,if the group is legal,all points should be connected directly between any pair, so just check if the power of point is equal to the groupsize-1 You may form groups by using union-find set Here's my c++ solution qwq http://mirror.codeforces.com/contest/791/submission/25794980