By Errichto, 14 months ago, ,

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.

Announcement of VK Cup 2017 - Round 1

•
• +286
•

 » 14 months ago, # |   +18 limak is back :)
 » 14 months ago, # |   +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 ??
 » 14 months ago, # |   +14 Number of problems?
•  » » 14 months ago, # ^ |   +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.
•  » » » 14 months ago, # ^ |   -42 Please add this detail in the blog.
 » 14 months ago, # |   0 "May the Force be with you"
 » 14 months ago, # |   +21 During the contest, remember that you can read many problems and try to solve those that fit you mostWhat 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.
•  » » 14 months ago, # ^ |   +387 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.
•  » » » 14 months ago, # ^ |   +541 Thanks , I will unregister :D
•  » » » » 14 months ago, # ^ |   +266 You can read D instead.
•  » » » » » 14 months ago, # ^ |   +327 Thanks I don't like Machine Learning
•  » » » » » » 14 months ago, # ^ |   -10 haha :-Dcarry on
•  » » » » » 14 months ago, # ^ | ← Rev. 2 →   +159 Is D about 4D geometry (my favorite topic)? :D
•  » » » » » » 14 months ago, # ^ |   +22 And problem E is like Polymeric Falcighol Derivation?
•  » » » » » » » 14 months ago, # ^ |   +51 Poor problem A.
•  » » » » » » » » 14 months ago, # ^ |   0 It's quite rare for having a tree in such depth in comment section
•  » » » » » » » » » 14 months ago, # ^ |   -9 I'll just increase the tree
•  » » » » » » » » » 14 months ago, # ^ |   +11 Yours made it reach max depth so I can't increase it anymore :(
•  » » » » » » » » » 14 months ago, # ^ |   -17 Depth first Search
•  » » » » 14 months ago, # ^ |   +10 when some sub-sub-.. comments have more likes than the blog.
•  » » » » 14 months ago, # ^ |   +4 You are still registered :P
•  » » » 14 months ago, # ^ |   0 Thanks.
•  » » » 14 months ago, # ^ |   +25 And if both of them aren't your favorite topic, read problem D or E, which is geometry + insane amount of math.
 » 14 months ago, # | ← 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.)
•  » » 14 months ago, # ^ |   +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://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:
•  » » » 14 months ago, # ^ |   0 I didn't find myself in the website you offered,so maybe it's not the case.
•  » » » » 14 months ago, # ^ |   +1 Yeah I just checked that as well. I suppose that's not the case then... Hopefully someone can help you soon.
•  » » 14 months ago, # ^ |   0 I have the same problem and don't know how to fix it :(
•  » » » 14 months ago, # ^ |   0 Please, try again.
•  » » 14 months ago, # ^ |   +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.
•  » » » 14 months ago, # ^ |   +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.
•  » » » » 14 months ago, # ^ |   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
 » 14 months ago, # |   +6 I can't register for Round 1. Each time get this message
•  » » 14 months ago, # ^ | ← Rev. 2 →   0 Try to register Div.2 and then unregister.
•  » » » 14 months ago, # ^ |   0
•  » » 14 months ago, # ^ |   0 Please, try again.
 » 14 months ago, # |   +2 Mike to the rescue.
 » 14 months ago, # |   -9 Guys ... KAN Is Back ... Be Aware ... Be ready with the "FRESH" Mind !!!
 » 14 months ago, # |   -48
 » 14 months ago, # |   +9 How is the average rating of a team calculated? And how will the ratings be updated for the official round?
 » 14 months ago, # | ← Rev. 3 →   +3 I always meet extremely frustrating bugs. LOL ...Thank you for your wish.
 » 14 months ago, # |   +41 I know that you love it Errichto, especially for you I'm posting it earlier than normally. :3
•  » » 14 months ago, # ^ |   +103 I will postpone the system testing 5 minutes for every post like this.
•  » » » 14 months ago, # ^ |   +165
•  » » » » 14 months ago, # ^ |   +11 hahaaha :-D
•  » » 14 months ago, # ^ |   +26 System Test should start now , cuz it takes long time
 » 14 months ago, # |   +6 Excuse me, the terms of agreement of this contest are written in Russian :( (I suppose it is same as usual.)
 » 14 months ago, # |   0 Is is the first time on Codeforces history that a problem gets only 250 points score :\
•  » » 14 months ago, # ^ |   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.
•  » » » 14 months ago, # ^ |   +18 Frankly, the VK Cup A should be worth 0 points as the corresponding Div2B problem is worth 1000 points...
•  » » 14 months ago, # ^ |   0 For example, Task A from Codeforces Round #329 (Div. 2)
•  » » 14 months ago, # ^ |   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 :)
 » 14 months ago, # |   -12 May be this contest bring high ratings to everyone. All the best :)
•  » » 14 months ago, # ^ |   +3 It's a zero sum game.
 » 14 months ago, # |   -11 This is going to be the best contest ever. So stay connected ..... .. ... .. .. :)
 » 14 months ago, # |   +1 "May the logic be with you."
 » 14 months ago, # |   +39 Rating prediction: div1 div2Рейтинг команд мои приложением, к сожалению, пока не рассчитывается.Extensions: Have fun & high rating:)
 » 14 months ago, # |   0 Poland STRONK!!!!
 » 14 months ago, # |   +16 WTF difficulty?
 » 14 months ago, # |   -31 in div 2: ques B, (X, Y, Z), if X-Y and Y-Z then also Z-X. is this reasonable???
 » 14 months ago, # |   +15
•  » » 14 months ago, # ^ |   0 wasn't there only one graph problem (Friendship Condition)?
•  » » » 14 months ago, # ^ | ← Rev. 2 →   0 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.
•  » » » » 14 months ago, # ^ | ← Rev. 2 →   +5 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".
 » 14 months ago, # |   0 D is cool :)
•  » » 14 months ago, # ^ |   0 Do you know how to solve it?
•  » » » 14 months ago, # ^ |   0 You should solve problem for one vertex and solve for other vertexes using answer of a parent.
•  » » » » 14 months ago, # ^ |   0 Still don't understand. Could you elaborate, please?
•  » » » » » 14 months ago, # ^ | ← 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.)
•  » » » 14 months ago, # ^ |   0 Tried using centroid decomposition.... Still got a TLE on pretest 9... I guess I need some optimization
•  » » » » 14 months ago, # ^ |   +19 Centroid decomposition is overkill. Just do extremely tedious subtree DP.
•  » » » » 14 months ago, # ^ |   +5 What is your CD logic?
•  » » » 14 months ago, # ^ |   0 No
 » 14 months ago, # |   +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?
•  » » 14 months ago, # ^ |   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 =|
•  » » 14 months ago, # ^ |   0 I had 3 successful hacks on DIV 2B 4 4 1 2 2 3 1 4 3 4 answer is NO
 » 14 months ago, # |   +1 The hacking system seems to be down for me :(
•  » » 14 months ago, # ^ |   0
 » 14 months ago, # |   +1 Hope all my solution passes and I will finally become candidate master.
 » 14 months ago, # | ← Rev. 2 →   0 is there any better order for (DIV1)C than n^5 ?
•  » » 14 months ago, # ^ | ← Rev. 3 →   0 O(n) solution: 25615179Edit: This is for Div. 2 C, not Div. 1 C.
•  » » » 14 months ago, # ^ |   0 I guess he meant div1C.
•  » » » 14 months ago, # ^ |   +3 The first letter of each name should be uppercase, while the other letters should be lowercase while (x) { cout << char('A' + (x % 26)); x /= 26; } ¯_(ツ)_/¯
•  » » » » 14 months ago, # ^ |   0 Oops.
•  » » » » » 14 months ago, # ^ |   0 As it turns out, I screwed up in the same place if x < 26: return 'A' + chr(x+ord('a')) else: return 'B' + chr(x+ord('a')) ¯_(ツ)_/¯
 » 14 months ago, # |   +5 How to solve Div 1 C. (unofficial) ?
 » 14 months ago, # | ← Rev. 2 →   +31 My brain after solving Div1-B.
•  » » 14 months ago, # ^ |   +6 Agreed.
 » 14 months ago, # |   +2 RIP RATINGS...
 » 14 months ago, # | ← Rev. 2 →   +1 submit C 10 seconds before the end of the contest, waiting.. waiting...Contest is over !! submission not theregood job servers, this website is so laggy these days
 » 14 months ago, # | ← Rev. 2 →   0 Div 2 Problem D is a nice Problem :DSomeone explain his solution please :D
•  » » 14 months ago, # ^ |   -23 its*
 » 14 months ago, # |   +30 Suspicious
 » 14 months ago, # |   -20 I am the god of hacking (Problem A in VK Cup)
•  » » 14 months ago, # ^ |   0 What is the answer for this test case?
•  » » » 14 months ago, # ^ | ← Rev. 2 →   +12 NOBut the fact is that ( 65538 * 65537 / 2 ) % 2^31 = 98305. There were those who used int instead long long.
 » 14 months ago, # |   0 Div1D pretest 9?
 » 14 months ago, # |   -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.
 » 14 months ago, # |   0 When will be rating updated ?
•  » » 14 months ago, # ^ |   +11 Usually after the system tests.
 » 14 months ago, # |   0 Is div 2 D supposed to be a lazy propagation segment tree after doing dfs ordering?
•  » » 14 months ago, # ^ |   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.
•  » » » 14 months ago, # ^ |   0 I was doing this, but I couldnt figure out how to get the distances for the paths that go through the father node.
•  » » » » 14 months ago, # ^ |   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.
•  » » » 14 months ago, # ^ |   0 It also can be solved using centroid decomposition.
 » 14 months ago, # |   +25 IMO the problems are a little harder than usual, but are very nice. How to solve Div1 D?
•  » » 14 months ago, # ^ |   +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.
•  » » » 14 months ago, # ^ |   +7 I don't know about Div1, but Div2 set of problems deserves ⭐⭐⭐⭐⭐
•  » » » » 14 months ago, # ^ | ← 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.
•  » » » » » 14 months ago, # ^ |   +4 He meant 5 star rating I guess.
•  » » » » » » 14 months ago, # ^ | ← 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.
•  » » » 14 months ago, # ^ |   0 When the system testing begins?
 » 14 months ago, # | ← 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 componentlet y be number of edges in componentWho wrote if (x * (x - 1) / 2 != y) puts("NO") and used int32, failed on this test.
•  » » 14 months ago, # ^ |   0 Yep, or n = 92684 and m = 148290... System test 29 |-(
 » 14 months ago, # |   0 How to solve div2 C?
 » 14 months ago, # |   +2 what's wrong with this output A A A Aa Aaa Aaaa Aaaaa Aaaaa in pretest 1 problem c Div2
•  » » 14 months ago, # ^ | ← Rev. 4 →   +38 Its too vulgar :-P..
•  » » 14 months ago, # ^ |   0 Nothing is wrong.
•  » » 14 months ago, # ^ |   +1 Your solution gives this output "A A A A Aa Aaa Aaaa Aaaa" on my computer which is wrong
•  » » » 14 months ago, # ^ |   0 Thank you
•  » » 14 months ago, # ^ | ← Rev. 2 →   +1 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
•  » » » 14 months ago, # ^ |   0 Thank you
 » 14 months ago, # |   +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
•  » » 14 months ago, # ^ |   +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.
 » 14 months ago, # |   +14 Tnx for the not copied contest :DWhen are we able to solve the problems on problemset?
 » 14 months ago, # |   +3 If I took 401 place but 399 place was taken by two people, will I participate in the 2 round?
•  » » 14 months ago, # ^ |   +3 no
•  » » » 14 months ago, # ^ |   +3 Но. если у кого то место<=400 , определяется плагиаризм тебе повезло!
•  » » » » 14 months ago, # ^ |   +3 А попроще?
 » 14 months ago, # |   +1 Well, I had some frustrating bugs.
 » 14 months ago, # | ← 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.
•  » » 14 months ago, # ^ |   +3 Dont paste full code in comments, instead paste link to the code
•  » » » 14 months ago, # ^ |   +3 Sorry my bad.. will take it out..
•  » » 14 months ago, # ^ |   +1 python stack size of quite less. RE is because of Recursion depth limit reach.Similar BFS solution will pass.
•  » » » 14 months ago, # ^ | ← Rev. 2 →   +3 Ahh yes your right! Python stack depth is only around 1000. The correct answer here offers a lot of light. Thanks a lot!..
•  » » 14 months ago, # ^ |   +1 Maybe stack overflow?
•  » » » 14 months ago, # ^ |   0 Yep that was the problem.. Python recursion stack size is small..
 » 14 months ago, # |   +4 Buggy Div2.D !! :D
 » 14 months ago, # |   +13 What a pleasure to solve some really original and less typing problems.
 » 14 months ago, # |   +4 Happiness is getting into the darker shade of blue:)
 » 14 months ago, # | ← Rev. 2 →   +16 wtfis it machine link?
•  » » 14 months ago, # ^ |   +8 look through defines
•  » » » 14 months ago, # ^ |   0 HOW could someone do that !!!
•  » » 14 months ago, # ^ | ← Rev. 4 →   +17 Someone is cheating by using that as second account.Edit:Obviously this guy:http://codeforces.com/contest/791/submission/25623078http://codeforces.com/contest/791/submission/25623055Compare the tokens used.
•  » » 14 months ago, # ^ |   +8 g++ -E and C++ online code formatter to attack it!
 » 14 months ago, # |   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?
•  » » 14 months ago, # ^ |   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
•  » » » 14 months ago, # ^ |   0 but then the number of edges required would be > 150000 so the ans anyway has to be "NO"
•  » » » » 14 months ago, # ^ |   0 Why ? take the example of a tree with 10^5 vertices . Therefore edges are 10^5 — 1
•  » » » » » 14 months ago, # ^ |   0 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"
•  » » » » » » 14 months ago, # ^ |   0 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. :(
 » 14 months ago, # | ← Rev. 2 →   0 @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.Can anyone help me with this?
•  » » 14 months ago, # ^ |   0 Got it. There was a mistake in DFS.Accepted Python code: http://codeforces.com/contest/791/submission/25642361
 » 14 months ago, # |   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?
•  » » 14 months ago, # ^ |   +2 Most likely, you were disqualified.
•  » » » 14 months ago, # ^ |   0 But why?
 » 14 months ago, # |   +26 It seems like the max rating and the rating graph has been updated, but the actual rating shown in the profile has not.
 » 14 months ago, # |   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....
 » 14 months ago, # |   +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?
 » 14 months ago, # |   +1 Why is it that the graph and the max ratings have been updated but the present rating has not yet been updated?
 » 14 months ago, # |   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?
•  » » 14 months ago, # ^ |   +5 I think it's fine. If I thought it's unprofessional, I wouldn't prepare such a problem.
 » 14 months ago, # | ← Rev. 2 →   0 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 :(
 » 14 months ago, # |   0 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....
 » 14 months ago, # |   0 so good
 » 14 months ago, # |   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://codeforces.com/contest/791/submission/25794980