### cdkrot's blog

By cdkrot, history, 2 years ago,

Credits:

1138A - Sushi for Two, idea and development by KAN

1138B - Circus, idea by MikeMirzayanov, development by cdkrot

1137A - Skyscrapers, idea by jury together, development: achulkov2

1137B - Camp Schedule, idea and development by wrg0ababd

1137C - Museums Tour, idea by ch_egor, development by qoo2p5

1137D - Cooperative Game, idea and development by mingaleg

1137E - Train Car Selection, idea and development by Schemtschik

1137F - Matches Are Not a Child's Play , idea by GlebsHP, development: cdkrot

And now the editorials:

Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...

• +64

 » 2 years ago, # | ← Rev. 2 →   0 Can we do div2B in O(n)?
•  » » 2 years ago, # ^ |   +5 div2B can be solved in O(n) by directly construction, but it is complicate to code. In my code 51091100 I divide number of artists into a total of 3 cases. They are nb + nc = 0 nb ≥ nc and na ≥ nb - nc nb ≥ nc and na < nb - nc and each case have 2 subcases, by constructing each subcase, they can be solved in O(n).I have tried my best to simplfy my code, but I still wonder if there are any simpler code that solve this problem in O(n)
•  » » » 2 years ago, # ^ | ← Rev. 2 →   +19 There is simple O(n) solution for this problem. We have a + b + c + d = n / 2 and b + c + 2d = nb + nd which can reduce to a - d = n / 2 - nb - nd which can brute force in O(n). See my submission 51116077.
•  » » » » 2 years ago, # ^ |   0 I see..For every value of a, we can find d from the reduced equation. Plugging the values in the given two equations, it's possible to uniquely find values of b and c.Well done!
•  » » » » 2 years ago, # ^ |   0 Thank You for sharing . I understood your concept. But can you please explain why you have used if(f>a[3]) condition ? What exactly is it's usage?
•  » » » » » 2 years ago, # ^ |   0 $f$ is the total of numbers need to be printed after printing values from $q[1]$ and $q[2]$. If $f>a[3]$ means that we have to use values from both $q[3]$ and $q[4]$, otherwise the value from $q[3]$ is enough( There is else statement before return 0). It's just more convenient for me to implement this way. It's not necessary. Array $a[]$ is not necessary too since we can use $q[].size()$ instead. My submission is still a bit messy.
•  » » » » » » 2 years ago, # ^ | ← Rev. 2 →   0 Why u have not used f>a[4] condition instead of f>a[3] condition? What is the correct use of f>a[3] condition i cannot understand it,could u please clear my doubt of not using f>a[4] condition or how can u say that if f<=a[3] then there is no need to look for q[4]?
•  » » » » » » » 2 years ago, # ^ |   0 Both of them would be fine. :) From the fourth condition, we can guarantee that $f=\frac{n}{2}-x-i<=a[3]+a[4]$. If you understand the concept, you will know that we can choose any $f$ numbers from $q[3],q[4]$ which is always possible since $f<=a[3]+a[4]$.(if it passed four conditions in my code). Of course, $f>a[3]$ is not necessary. It’s just alternate way of implementation. Sorry if array $a[]$ makes you confused, you can think of it as $q[].size()$ instead. :)
•  » » » » 2 years ago, # ^ |   0 What would you classify this kind of problem as? I see it as an adhoc problem.
•  » » 2 years ago, # ^ |   0 Hey, I am new here.Solved Div2B in O(1) logic. check my solution here.
•  » » » 2 years ago, # ^ |   0 Thats O(n)
•  » » » » 2 years ago, # ^ |   0 Sorry for confusion. I was talking only for problem solving Logic. Leaving the input/output and time for shortening the problem.
 » 2 years ago, # |   +8 Div2B is a beautiful problem!
•  » » 2 years ago, # ^ | ← Rev. 2 →   +1 since the recent rounds , division 2 has became slightly tougher than previous rounds and question are really much interesting and new . and also this one was moscow olympiad finals , so u can expect them to be good .
•  » » » 2 years ago, # ^ |   0 From what I've understood in the announcement, div2 problems only were not part of the competition.
 » 2 years ago, # |   +8 Typo in the tutorial of 1137D — Cooperative Game."Let r denote the distance from finish vertex to the one fast and slow met."The r here should be x.
 » 2 years ago, # |   -48 It seems too many points for Cooperative Game problem. It is just the search a cycle in a list. Very known problem!!
 » 2 years ago, # |   +5 I have submited a solution of Museums Tour problem. It has Run Time Error on test 16 with try http://codeforces.com/contest/1138/submission/51133791. I very carefully look at my code and don't understand what problem is. Can tell me what to do to find error.
•  » » 2 years ago, # ^ |   +5
 » 2 years ago, # | ← Rev. 4 →   +37 Another solution for F with treaps:Lets have an implicit treap of the order of the vertices. Initially we build it in by simulating the burning process with heap or set. "When" and "Compare" queries are now easily done in by simply finding the position of a given node (we keep pointers for each vertex id to its corresponding node in the treap).For "Up" query we notice that we need to extract nodes on the path from the last updated vertex (initially assume this is n) to vertex u, then reverse their order and finally insert this new reversed subsequence to the end of the treap.The problem is that we are not sure that these vertices are consecutive in the treap. But we can prove that the number of consecutive segments is amortized . The proof is similar to the one for link-cut tree's complexity. So now we have a straight forward by doing binary lifting and "when" query for finding the consecutive segments in the path. I had this solution during the onsite version, but unfortunately it's too slow. Fortunately we can do this finding in by going through the treap and keeping "next" and "prev" pointers in each treap node. This way the complexity is and without optimizations passes in ~3 sec. Here is the code if someone is interested: 51142776 Also if I'm not mistaken by replacing the treap with splay tree, the complexity will become just .
 » 2 years ago, # |   +15 If you use Google properly, you may solve div1D in one minute.I don't think problems like this should appear in Codeforces.I spent my time and effort just to find that my friends all used Google to solve it(they told me after the contest).It's not fair.
•  » » 2 years ago, # ^ | ← Rev. 2 →   0 Could you please provide us with a link, so we would know how to google such things next time?
•  » » » 2 years ago, # ^ |   +13
•  » » » 2 years ago, # ^ |   0 its a famous interview question.. given a linked list with a loop..find the starting node of that loop. https://www.youtube.com/watch?v=-YiQZi3mLq0 This is exactly what you require to solve this question..no hard googling needed.. just type the above keywords..u will get many blogs describing fast, slow method as mentioned in the tutorial..and this question is not even a modified version of this famous problem..its almost same to same.. thats why maybe it was unfair to have this one in the contest and a suprise that only few were able to solve it..maybe because many were stuck on problem C..like me :P
•  » » » 2 years ago, # ^ |   0 Sorry for my late reply.http://global.bing.com/search?q=if+linked+list+have+a+cycle&qs=n&form=QBLH&sp=-1&pq=if+linked+list+have+a+cyc&sc=0-25&sk=&cvid=C990CCB8E2B647558F43CFD6A4AF6B26There is even a code sample.By the way, I used Bing because I'm in China. And for some specific reason, we can't use Google these days :(
•  » » 2 years ago, # ^ |   0 This is also a standard technical interview question: https://www.geeksforgeeks.org/find-first-node-of-loop-in-a-linked-list/
 » 2 years ago, # |   +18 Can someone describe solution for Div1C. "Museums Tour" in more detail? I can't understand why my submission got WA 79 on this problem.
 » 2 years ago, # | ← Rev. 2 →   0 HELP! Why I got RE on test 73? Submission: 51210282
•  » » 2 years ago, # ^ |   0 You can try some other compiler. I switched from G++17 to MS C++ 2017 and got AC.
•  » » » 2 years ago, # ^ |   0 Thanks! I tried MS C++ and got AC, that's quiet strange.
 » 2 years ago, # |   0 I wonder why my div1C code gets either TLE18 using array analog link list to storage edges, or MLE16 using vectors :( TLE18: https://codeforces.com/contest/1137/submission/51214068 MLE16: https://codeforces.com/contest/1137/submission/51253929
•  » » 2 years ago, # ^ |   0 exactly the same to me.
 » 2 years ago, # | ← Rev. 13 →   0 simple o(n) solution for the B problem we need to check for 3 formulas c= clown(10) b=both(11) no=none(00) a=acrobates(01) Aa=allacrobates Ab=allboth Ac=allclowns Aa=allacrobates (1) c+a+b+no=n/2; // first condition all the numbers in the first half should be equal to n/2 (2) c+b=(Aa-a)+(Ab-b); c+2b+a=Aa+Ab; // second condition all the clowns should be equal to the acrobates (3) no-b=n/2-Aa-Ab; //subtract the first equation from the second one to get the third one which is the one we will solve with  step1 : first of all use a loop to fix (no variable) in the third equation and find b as the right hand side is given in the third equation now we have no-b=(n/2-Aa-Ab) (no is now known as we used loop for it now find b and check for validation through the 3 equations and b>=0 and save no and b in temp variables then break the loop see the code for more details ) step2: so after finding (b) variable in the same loop and checking if it's valid now use the second or the first formula (number 1 or 2 ) to find c+a as you now found (no and b variables ) put them in this formula (c+2b+a=Aa+Ab;) for example to find (c+a) you can also use the first formula step3: after this use another loop (not nested) (to fix a or to fix c loop in it as no variable in step 1) and to find the other variable a or c now you have (a and c and b and no variables) you have the four variables just print the answer check the link below for the solution link https://codeforces.com/contest/1138/submission/51265926 link to submission
•  » » 2 years ago, # ^ |   +8 why to many negative votes??!!1
•  » » » 2 years ago, # ^ | ← Rev. 3 →   0 Maybe because there has been another comment described this solution, your explanation is much more detailed though. (Although the last paragraph is really hard to read)
 » 2 years ago, # | ← Rev. 2 →   0 Can anyone tell me what's going wrong here?? Problem C Code
 » 2 years ago, # |   0 How to solve 1137B — Camp Schedule by hashes?
•  » » 2 years ago, # ^ |   0 got it
•  » » » 2 years ago, # ^ |   0 It would be great if you can share the approach or provide any links which you referred :D
•  » » » » 2 years ago, # ^ | ← Rev. 4 →   0 I referred to this link. It provides a simple way to hash strings while avoiding collision. You can also refer to my submission
 » 2 years ago, # |   0 can anyone explain the thought process for getting the formula for problem " Skyscrapers " "ans=max(Lrow,Lcol)+1+max(Grow,Gcol)" ?
•  » » 2 years ago, # ^ |   0 ok got it by myself ! as for any intersection we are comparing with any two elements row wise and column wise so the number of elements less than and greater will remain the same .and from this we can make this formula
 » 2 years ago, # | ← Rev. 2 →   0 Yes!!! Check below solution. http://codeforces.com/contest/1138/submission/51394343
 » 2 years ago, # |   0 How could div2A be solved by binary search?
•  » » 10 months ago, # ^ |   0 Have a look at mine. https://codeforces.com/contest/1138/submission/90054043
 » 2 years ago, # |   0 For DIV1 problem B,Why I WA on Test 71,using the fail array(may like Aho-Corasick automation)to calculate the max same prefix and suffix. What is the hacks in Test71. my code is as following https://codeforces.com/contest/1137/submission/51554217
 » 2 years ago, # |   0 For Div1.C,why do we have to compute in SCC? We can stop our tour in an arbitary city besides 1.
 » 2 years ago, # |   0 I don't know why I am getting wrong in div2B problem in 9th test. My submissions went pretty well with all 8 test cases.I tried my best but didn't found any error. I implemented div2B in according to your tutorial. Here is my submission. Plz rectify me. See my submission 54278040
 » 14 months ago, # |   0 In SUSHI FOR TWO I am getting wrong answer on test 7. used this logic : if(curr ==1) { count2=0; count1++; if(max1
 » 12 months ago, # |   0 What is the Binary search approach for problem A?
•  » » 10 months ago, # ^ |   0 You can have a look at my solution. Actually counting the length of each segment first is a proper way to encode the input and check if a specific length is valid. The following is the link: https://codeforces.com/contest/1138/submission/90054043
 » 6 months ago, # |   0 can anyone plz paste the code of 1138A here
 » 6 weeks ago, # |   0 what is error in my code ,Problem :-sushi for Twoimport java.util.Scanner;/** * * @author abhishekraj */ public class Codefor { `/** * @param args the command line arguments */ public static void main(String[] args) { int count1=Integer.MIN_VALUE,count2=Integer.MIN_VALUE,max1=Integer.MIN_VALUE,max2=Integer.MIN_VALUE,ans=Integer.MIN_VALUE; Scanner sc = new Scanner(System.in); long n=sc.nextLong(); int a[] = new int[(int)n]; for(int i=0;i