Hello.

The round 1 of VK Cup 2017 will take place on March 18 at 18:35 MSK (check your timezone here), along with standard div1+2 Codeforces Round #405. The contest "VK Cup 2017 — Round 1" is for teams qualified from two Qualification Rounds. The top 400 teams will advance to the Round 2, while other ones will have one more chance in the Wild Card Round 1 in April. Those who don't participate in the VK Cup can take part in the Codeforces Round #405 individually (problems will be available in English too). All three rounds last 2 hours, and all are rated.

I want to thank: KAN for his help in the contest preparation, MikeMirzayanov that we are here, AlexFetisov for testing, the VK company for this nice annual contest.

I'm a setter and I hope (and expect?) that you will enjoy the problems. During the contest, remember that you can read many problems and try to solve those that fit you most.

I wish you great fun and no frustrating bugs.

div2: 500-1000-1500-2000-2500

div1: 500-1000-1500- **2250** -2500

vk-cup: **250**-500-1000-1500- **2250** -2500

The contest is over. See the editorial here. Congratulations to all who advanced to the next round, and congratulations to winners of each contest.

Specifically, the winners of VK Cup Round 1 are:

The winners of parallel rounds are:

Div. 1:

Div. 2:

I'm sorry for letting some slow solutions pass in the Rectangle Strips problem. I tried really hard to prepare tests there but apparently didn't succeed.

limak is back :)

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 ??

Number of problems?

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.

Please add this detail in the blog.

"May the Force be with you"

`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.

No. Problems are sorted by the expected difficulty. That sentence means that maybe a problem B is some unpleasant geometry in 2D and you don't like it, while a problem C is about geometry 3D, what is your favorite topic. Then maybe you should solve C first.

Thanks , I will unregister :D

You can read D instead.

Thanks I don't like Machine Learning

haha :-D

carry on

Is D about 4D geometry (my favorite topic)? :D

And problem E is like Polymeric Falcighol Derivation?

Poor problem A.

It's quite rare for having a tree in such depth in comment section

I'll just increase the tree

Yours made it reach max depth so I can't increase it anymore :(

Depth first Search

when some sub-sub-.. comments have more likes than the blog.

You are still registered :P

Thanks.

And if both of them aren't your favorite topic, read problem D or E, which is geometry + insane amount of math.

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.)

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://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:

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

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

Hopefully someone can help you soon.

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

Please, try again.

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.

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.

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

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

Try to register Div.2 and then unregister.

Please, try again.

Mike to the rescue.

Guys ... KAN Is Back ... Be Aware ... Be ready with the "FRESH" Mind !!!

https://www.hackerrank.com/codewar-6

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

I always meet extremely frustrating bugs. LOL ...

Thank you for your wish.

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

I will postpone the system testing 5 minutes for every post like this.

hahaaha :-D

System Test should start now , cuz it takes long time

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

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

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.

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

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

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 :)

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

It's a zero sum game.

This is going to be the best contest ever. So stay connected ..... .. ... .. .. :)

"May the logic be with you."

Rating prediction: div1 div2

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

Extensions:

Have fun & high rating:)

Poland STRONK!!!!

WTF difficulty?

in div 2: ques B, (X, Y, Z), if X-Y and Y-Z then also Z-X. is this reasonable???

wasn't there only one graph problem (Friendship Condition)?

771A - Мишка и условие дружбы and 771C - Мишка и прыжки по дереву? It was about 24 teams than solved more than 3 tasks on VK Cup 2017 - Раунд 1. So, for most of participants 2/3 tasks was graphs.

It's a bit like saying that 771D - Мишка и компания was about strings — there was a string on the input but it doesn't mean much. I would say that the Tree Jumps is a dp + number theory problem.

Btw. you're saying that almost everybody solved at most 3 problems, so for them 2/3 tasks were about graphs. It would be true if they solved exactly 3 problems, not "at most 3".

D is cool :)

Do you know how to solve it?

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

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

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.)

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

Centroid decomposition is overkill. Just do extremely tedious subtree DP.

What is your CD logic?

No

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?

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 =|

I had 3 successful hacks on DIV 2B

answer is NO

The hacking system seems to be down for me :(

http://imgur.com/JmyUhUN

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

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

O(n) solution: 25615179Edit: This is for Div. 2 C, not Div. 1 C.

I guess he meant div1C.

`The first letter of each name should be uppercase, while the other letters should be lowercase`

¯_(ツ)_/¯

Oops.

As it turns out, I screwed up in the same place

¯_(ツ)_/¯

How to solve Div 1 C. (unofficial) ?

My brain after solving Div1-B.

Agreed.

RIP RATINGS...

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

Div 2 Problem D is a nice Problem :D

Someone explain his solution please :D

its*

Suspicious

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

What is the answer for this test case?

`NO`

But the fact is that

`( 65538 * 65537 / 2 ) % 2^31 = 98305`

.There were those who used

`int`

instead`long long`

.Div1D pretest 9?

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.

When will be rating updated ?

Usually after the system tests.

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

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.

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

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.

It also can be solved using centroid decomposition.

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

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.

I don't know about

Div1, butDiv2set of problems deserves ⭐⭐⭐⭐⭐"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.

He meant 5 star rating I guess.

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.

When the system testing begins?

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.Yep, or n = 92684 and m = 148290... System test 29 |-(

How to solve div2 C?

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

Its too vulgar :-P..

Nothing is wrong.

Your solution gives this output "A A A A Aa Aaa Aaaa Aaaa" on my computer which is wrong

Thank you

Watch out for Aaaaaaaaaaa, which is 11 characters, any name longer than 10 character is not allowed. I got WA on first try because of this.

also your output on the judge is

A A A A A A Aa Aa

Thank you

On task D, div 1, my solution in

O(n^{2}) got AC, weak tests :\An example on which I get TLE:

n= 3·10^{5},t_{i, j}= (i+j % 2 ? -j : j+1)Link to solution

It seems that there is more than one

O(n^{2}) solution that got AC. I tried really hard to prepare tests in this problem but I didn't succeed. I'm sorry for that.Although the contest is over, can you add that test after the contest? (for people who solve the problems in the problem set)

If possible, please add this test case too (which will make the naive DP solution (n^2 states) described in the editorial visit O(n^2) states. (The "next rectangle" index for the first row jumps n/2 steps, the "next rectangle" index for the second row jumps 1 step)

Tnx for the

not copiedcontest :DWhen are we able to solve the problems on problemset?

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

no

Но. если у кого то место<=400 , определяется плагиаризм тебе повезло!

А попроще?

Well, I had some frustrating bugs.

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.

Dont paste full code in comments, instead paste link to the code

Sorry my bad.. will take it out..

python stack size of quite less. RE is because of Recursion depth limit reach.Similar BFS solution will pass.

Ahh yes your right! Python stack depth is only around 1000. The correct answer here offers a lot of light. Thanks a lot!..

Maybe stack overflow?

Yep that was the problem.. Python recursion stack size is small..

Buggy Div2.D !! :D

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

Happiness is getting into the darker shade of blue:)

wtf

is it machine link?

look through defines

HOW could someone do that !!!

Someone is cheating by using that as second account.

Edit:

Obviously this guy:

http://codeforces.com/contest/791/submission/25623078

http://codeforces.com/contest/791/submission/25623055

Compare the tokens used.

g++ -E and C++ online code formatter to attack it!

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?

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

but then the number of edges required would be > 150000 so the ans anyway has to be "NO"

Why ? take the example of a tree with 10^5 vertices . Therefore edges are 10^5 — 1

for ans to be "YES" there should be (x*(x-1))/2 edges, which would be of the order 10^10 but m < 150000 hence the ans will be "NO"

I got it, what has happened is, that after the overflow the value has become equals to m. I thought probablity of this is too less. My bad luck. :(

@Errichto This question is regarding problem B of div 2.

This code in Python generated TLE while the same logic implemented in C++ passed all testcases.

Python: http://codeforces.com/contest/791/submission/25622032 C++: http://codeforces.com/contest/791/submission/25628098

Can anyone help me with this?

Got it. There was a mistake in DFS.

Accepted Python code: http://codeforces.com/contest/791/submission/25642361

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

Most likely, you were disqualified.

But why?

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

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....

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?

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

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?

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

I solved 1 problem in this contest and in my "contests" section it's showing +68 and new rating 1034. But in my profile it's showing my previous rating, 966 :(

hey folks.... i attended VK cup Round 1 div 2 contest.... before contest my rating was 713 and after the contest i gained +134 Rating Points... and my new rating should be 847 but in my profile it is not shown 847 but shown my previous rating 713... :( :( so i want to why this is happened please someone explain please....

so good

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://codeforces.com/contest/791/submission/25794980