### n0sk1ll's blog

By n0sk1ll, 3 months ago,

Author: n0sk1ll

Hint
Solution
Bonus Problem

Author: n0sk1ll

Hint 1
Hint 2
Solution
Bonus Problem

Author: n0sk1ll

Hint 1
Hint 2
Solution
Bonus Problem

Author: n0sk1ll

Stupid Hint
Hint
Solution
Bonus Problem

Author: n0sk1ll

Hint
Lemma 1
Lemma 2
Solution
Bonus Problem

## 1779F - Xorcerer's Stones

Author: n0sk1ll

Hint 1.1
Hint 1.2
Hint 1.3
Hint 2.1
Hint 2.2
Solution
Bonus Problem
Bonus Problem Hint

Author: Giove

Hint
Solution
Bonus Problem

## 1779H - Olympic Team Building

Author: n0sk1ll

Huge thanks to dario2994 for helping me solve and prepare this problem.

Hint 1
Hint 2
Fake Solution
Lemma
Solution
Bonus Problem
Tutorial of Hello 2023

• +356

 » 3 months ago, # |   +97 very fast tutorial ;)
•  » » 3 months ago, # ^ |   +59 very fast comment
•  » » » 3 months ago, # ^ |   +35 very fast reply
•  » » » » 3 months ago, # ^ | ← Rev. 2 →   +8 all of you very fast
•  » » » » » 3 months ago, # ^ |   +12 very fast seen
•  » » » » » 3 months ago, # ^ |   0 not me :(
•  » » » » » » 3 months ago, # ^ |   +1 very very fast
•  » » » » » » » 3 months ago, # ^ |   +5 late reply to something very fast
•  » » » » » » » » 3 months ago, # ^ |   +3 very fast late reply
•  » » » » » » » » » 3 months ago, # ^ |   0 very fast seen the very fast late reply
•  » » » » » » » » » 3 months ago, # ^ |   +3 Very last reply! Now stop!!
•  » » » » » » » » » 3 months ago, # ^ |   0 very fast swipe....!!
•  » » » » » » » » » 3 months ago, # ^ |   0 Fast!!!
•  » » » » » » » » » 3 months ago, # ^ |   -9 very fast stuff
•  » » » » » » » » » 3 months ago, # ^ |   0 fast reply on same level
•  » » 3 months ago, # ^ |   0 thank you for tutorial :)
 » 3 months ago, # | ← Rev. 3 →   0 amazing it's too fast!!!
 » 3 months ago, # |   +2 Is this the fastest published editorial?
 » 3 months ago, # |   0 Too fast, Thank You!
 » 3 months ago, # |   +143 These are, as of now, surely the best CF problems of 2023!
 » 3 months ago, # |   +3 F is very similar to : THis Problem
 » 3 months ago, # |   0 this is awsomely fast ! thanks
 » 3 months ago, # | ← Rev. 6 →   -12 I want to know in Prob.A when I was submitting like for LR the answer is 1, why its wrong? Since only 1 operation will be enough in this case if we find an "LR" occurence we can just swap it and it's done
•  » » 3 months ago, # ^ |   -25 import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; public class HallOfFame { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); PrintWriter pw = new PrintWriter(new BufferedOutputStream(System.out)); int t = Integer.parseInt(br.readLine()); while (t-- > 0) { int n = Integer.parseInt(br.readLine()); String str = br.readLine(); int cR = 0; for (int i = 0; i < n; i++) { if (str.charAt(i) == 'R') { cR++; } } if (cR == 0 || cR == n) { pw.println(-1); continue; } int res = 0; for (int i = 0; i < n - 1; i++) { if (str.charAt(i) == 'L' && str.charAt(i + 1) == 'R') { res = i + 1; break; } } pw.println(res); } br.close(); pw.flush(); pw.close(); } } 
•  » » » 3 months ago, # ^ |   0 I know this too I just want to know that why it's not 1 but i+1. Only 1 can do the work or not?
•  » » » » 3 months ago, # ^ |   0 No
•  » » » » 3 months ago, # ^ |   0 Consider the case: RRRLLR. If you intended to swap index 1 (or the 0th index), you fail to illuminate the trophy since index 1 and 2 are the same. Obviously, 'L' and 'R' are not fixed at index 1, so outputting 1 will be unreasonable.
•  » » » » » 3 months ago, # ^ |   +1 I am so stupid I didn't read it right I thought it said to input the operation .So stupiddddddddddd of me!!!!!!!!!!
•  » » 3 months ago, # ^ |   0 Output: For each test case print −1 if it is impossible to illuminate all trophies by performing one operation (or doing nothing). Otherwise, print 0 if you choose not to perform the operation (i.e., the trophies are illuminated by the initial positioning of the lamps), or an index i (1≤i
 » 3 months ago, # |   -8 Queue forces on C and D
 » 3 months ago, # | ← Rev. 3 →   0 my sol for C was basically to do some math. Starting at m you check all the contiguous sums down from m and up from m. For the sums on the left, they have to be less than or equal to 0 and for the sums on the right, they have to be greater than or equal to 0Did anyone use a similar approach that worked? I got a WA on pretest 2.Edit: So I looked at the editorial and while I'm still not clear on the solution, its helped. However, can someone poke holes at my logic here? I manipulated the inequality for cases where k was smaller than m and for cases where k was larger than m. When you do that, you get the following inequalities:Case 1: (k < m) a_k+1 + a_k+2 + a_k+3 + . . . + a_m <= 0Case 2: (k > m) a_m+1 + a_m+2 + a_m+3 + . . . + a_k >= 0So for the first case, you get these inequalities that I've numbered on the left(1) a_m <= 0(2) a_m + a_m-1 <= 0(3) a_m + a_m-1 + a_m-2 <= 0 . . .(m-1) a_m + a_m-1 + a_m-2 + . . . + a_2 <= 0For the second case, you get these inequalities that I've numbered on the left(1) a_m+1 >= 0(2) a_m+1 + a_m+2 >= 0(3) a_m+1 + a_m+2 + a_m+3 >= 0 . . .(n-m) a_m+1 + a_m+2 + a_m+3 + . . . + a_n >= 0So I assumed that as long as you solved these cases independently and in order, you would get the optimal answer (go through inequalities numbered 1 through m-1 in case 1, and then go through the inequalities numbered 1 through n-m in case 2.
•  » » 3 months ago, # ^ |   0 For the sums on the left, you must iterate till i > 0, not i >= 0. Had made the same mistake at first. AC code: https://codeforces.com/contest/1779/submission/187800612
•  » » » 3 months ago, # ^ |   0 I did do this in 187817105 though
•  » » » » 3 months ago, # ^ |   0 I did the same thing, we are not considering the maximum number from each subarray, I don't know why we should take that though in the pq
•  » » » » » 3 months ago, # ^ |   0 How then would you find the max when you need it?
•  » » » » 3 months ago, # ^ |   0 As explained in the editorial you need to choose such element to perform operations on that causes our target prefix sum to decrease as much as possible. Current element i.e. $arr[i]$ will not always be that element.
•  » » » » » 3 months ago, # ^ |   0 Could you help provide a test case that showcase why it is necessary? Thanks in advance!
•  » » » » 3 months ago, # ^ |   0 Take a look at Ticket 16655 from CF Stress for a counter example.
•  » » » 3 months ago, # ^ |   0 did this because I assumed n == 1 is a special case :/
•  » » » 3 months ago, # ^ |   0 But Why?
•  » » » 3 months ago, # ^ |   0 can you explain your solution ..
•  » » » 3 months ago, # ^ |   0 Thank you for your code.I got it now. :)
•  » » 3 months ago, # ^ |   0 Im too
•  » » 3 months ago, # ^ |   0 I'm stucking in the second case since I cannot get min flips I need, I'm using the same approach, just try this in the second case ... a[m] 12 -11 -2 -3 you can flip just -11 and you won't need to flip -2 and -3 so the min answer is 1 not 2
•  » » 3 months ago, # ^ |   0 I also used the same approach. After reading the tutorial what I am getting is that our approach was right but it does not always lead to the optimal answer. The constraints from the math can be satisfied with lesser operations using priority queue. Like the priority queue only picks a subset of numbers from the set of numbers modified in our approach and still satisfies the constraints.
•  » » 3 months ago, # ^ |   0 If you are still not clear, consider the inequalities a_m+1 + a_m+2>=0, let say they are 4 and -4 respectively, so techincally you dont need to change anything and now lets the next inequality , let a_m+3 be -2 so, now the sum is <0 , so you must change some elements, which will you prefer to change -2 or -4, obviously -4 since it contributes more to the positive sum, thats why you need to keep a priority queue or set for this purpose
•  » » » 3 months ago, # ^ |   0 Thanks so much! That test case is pretty eye-opening.
•  » » 3 months ago, # ^ |   0 Your approach is right! You have to consider one more thing.Case 1: (k < m) a_k+1 + a_k+2 + a_k+3 + . . . + a_m <= 0In this case, there can be u and v (u > v) such that, a_u + a_u+1 + . . . + a_m-1 + a_m <= 0 will hold, but a_v + . . . + a_u + a_u+1 + . . . + a_m-1 + a_m > 0 Here, I think you are changing the sign of a_v. What if a_u > a_v?Changing the sign of a_u will be more significant than changing the sign of a_v.I think your algorithm changes the sign of a_u instead of a_v!Think what will happen. You will find the error. Your approach is correct. I got the correct verdict from your approach.
•  » » » 3 months ago, # ^ |   0 Thanks for the comment! That was the problem I had lol. This was a really educational C!
 » 3 months ago, # |   0 Why is this solution to C wrong? 187783695
•  » » 3 months ago, # ^ | ← Rev. 2 →   +1 you are storing all the elements at first and then trying to compute the number of operations this doesn't take into consideration that a element at index X s.t. X
•  » » 3 months ago, # ^ |   +3 Take a look at Ticket 16656 from CF Stress for a counter example.
 » 3 months ago, # |   0 It looks like someone was eagerly waiting for the clock to tick.
 » 3 months ago, # |   0 Could someone help? Why I got runtime 187832356
 » 3 months ago, # |   0 Explanations are very easy and clear.
 » 3 months ago, # |   0 wow, so fast!
 » 3 months ago, # |   +8 super fast
 » 3 months ago, # |   0 E is brilliant!
 » 3 months ago, # |   +11 submitted editorial in 0ms
 » 3 months ago, # |   +9 Damn, B was very sneaky! Great problems!
•  » » 3 months ago, # ^ |   +4 I messed up the maths once and kept wondering why is the solution wrong :P
 » 3 months ago, # |   +42 Bonus for E (hopefully it's correct :)) Let's find outdegree for all people, call it deg[i]. It's sufficient to find minmum R such that there exists subset of people of size R such that their sum of outdegrees equals nCr(R, 2) + R * (N — R). I was thinking about this during contest but how do you implement it if you want to recover answer as well?? I mean can you do this faster than O(N^4), and in particular in better space complexity?Btw amazing problemset.
•  » » 3 months ago, # ^ |   +5 i used same logic. here is my submission. https://codeforces.com/contest/1779/submission/187825157
•  » » » 3 months ago, # ^ |   0 Wow, I'm so stupid. Obviously this is not equivalent to knapsack, since the answer always consists of some prefix of biggest outdegree guys...
 » 3 months ago, # |   +3 My first contest in my life and the first contest in 2023
 » 3 months ago, # |   -8 For problem F, the editorial says "Time complexity is $O(n.A^2)$ and memory complexity is $O(nA)$. It is possible to optimize this, but not necessary". I believe my code has the same complexity as said above but it got TLE at test 10 :( 187833020
•  » » 3 months ago, # ^ |   0 Never mind, I figured it out. Because of vector assignment(s).
 » 3 months ago, # |   +1 The way you meet the New Year is the way you live the whole year: that fast editorial for all 2023 contests :)
 » 3 months ago, # |   +5 The n = 3 case in B was really terrifying.
•  » » 3 months ago, # ^ |   +1 You could have derived it. check here — https://youtu.be/2L326KCBqug ,but yes it gave a feeling that for odds answer would be NO :P!
 » 3 months ago, # |   0 Why did we look for i > j in problem E (lemma 2)? It seemed to me that i < j should. If I'm wrong, please explain why.Sorry for my poor English
•  » » 3 months ago, # ^ |   0 You are right! $i  » 3 months ago, # | +3 FST is not a funny joke. About E:Interactive problems takes a lot time to test the sample of it , so I submit it with out testing the sample . My program WA on pretest 2 , but pretest 2 is a sample and I don't think this should be deducted from the score .If there many samples , and I get WA on 2 , in codefoeces's rules , should my score be deducted ? Is this a mistake ? I don't know , TAT.(My English is so bad.) •  » » 3 months ago, # ^ | -13 And I think E is a good problem . But many people solve it with mindless guessing. •  » » » 3 months ago, # ^ | 0 What sort of mindless guessing? •  » » 3 months ago, # ^ | +23 Only the first pretest is penalty-free, as per the rules.  » 3 months ago, # | +31 I think that the author should swap E and F, it's so confusing.  » 3 months ago, # | +4 Bonus problems. Yeah !!! •  » » 3 months ago, # ^ | 0 Potatohead orz  » 3 months ago, # | 0 I even cannot come up with the lemma 1 of problem E during the contest. Perhaps I've forgotten the knowledge of the Graph Theory I've learned.  » 3 months ago, # | ← Rev. 3 → +47 Bonus E :View the match where player$u$beat player$v$as a directed edge from node$u$to$v$in a complete graph of$N$vertices. Candidate masters are nodes that can be visited from all other nodes through some simple path (in other words, there exist a series of matches(=edges) to disqualify all other players).All possible candidate masters are the nodes located in the last/terminal Strongly Connected Component(SCC) (SCC that doesnt have any outgoing edge to another SCC). As the graph is complete, this terminal SCC is unique.For each node, find its outdegree. For the first$N-1$nodes, do a simuls againts all other node(player) and count each of their loss match, with a total of$N-1$queries. For the final node, calculate its outdegree from the remaining out/in-going edges from the previous$N-1$nodes.The terminal SCC (the candidate masters) are composed of the$x$nodes with smallest outdegree such that their sum is equal to the number of edges among those$x$nodes$=\frac{x(x-1)}{2}$. Pick minimum such$x$.  » 3 months ago, # | +42  » 3 months ago, # | 0 Very fast tutorial and Bonus Problems are really interesting  » 3 months ago, # | +2 I don't know why this solution gets AC while it shouldn't (Problem D)187838626i used sparse table for RMQ but i forgot to initialize the logs array but it passed with no problem!  » 3 months ago, # | 0 very fast tutorial  » 3 months ago, # | 0 What will be generalized approach for Problem B bonus part ?  » 3 months ago, # | ← Rev. 2 → 0 Bonus task for B:Let n = km + r where 0 <= r <= m-1. Similar with original problem we get (k-1)s_m+s_r=0, where s_m = a1 + a2 + ... + am. When k = 1, r = 1, there's no solution because in this case a1 = s_1 = 0. Otherwise there exist some { a1, a2, ..., am } satisfy the condition. We let ai = a_(i-1)%m+1 for 1 <= i <= n and get a solution. •  » » 2 months ago, # ^ | 0 How did you get the ai = a_(i-1)%m + 1 part? •  » » » 7 weeks ago, # ^ | 0 Did you get an answer on how the last part came about?  » 3 months ago, # | +5 For rank1 to rank4, all of them got "wrong answer on pretest 2" at B for one time.What a great problem!  » 3 months ago, # | +18 I used vector in the iteration of F, and get stack overflow(maybe in fact MLE?) in the system test. Can anyone explain the reason? Thank you.  » 3 months ago, # | +4 As a candidate master, I even CANNOT solve the problem E which is about finding "candidate master".  » 3 months ago, # | 0 Why in problem C we are going till i>=1 and not i>=0? •  » » 3 months ago, # ^ | ← Rev. 2 → 0 Baltic's favorite number is m, and he wants a1+a2+⋯+am to be the smallest of all non-empty prefix sums. "non-empty" means there's no need for p0 >= pm •  » » » 3 months ago, # ^ | 0 Thanks ! Got it. •  » » » 3 months ago, # ^ | 0 I still didn't get it. Can you explain it again •  » » » » 3 months ago, # ^ | 0 It's simple actually. No matter what alteration you make on the very first item of the array, all the prefix sums will have an equal impact on it. So, if the 1st prefix sum is smaller than m-th prefix sum, it will still remain like that. •  » » » » » 3 months ago, # ^ | 0 Thank you!  » 3 months ago, # | -15 Even though I liked problem E myself, it felt weird that it was interactive, and not just giving degrees for each vertice, and asking the same. Can someone explain to me the reason it was given in such a way? •  » » 3 months ago, # ^ | 0 Because red herrings make for cruel funny problems I suppose. •  » » 3 months ago, # ^ | 0 But if they give you the degree, It became easier, because you knew that you need the out degree to solve the problem. But in problem E, you maybe think of other paths instead of asking the out degree. (Mistake path came from weaker players like me awa)  » 3 months ago, # | 0 Can anyone explain why I'm getting WA in problem C https://codeforces.com/contest/1779/submission/187841000 •  » » 3 months ago, # ^ | 0 Take a look at Ticket 16663 from CF Stress for a counter example.  » 3 months ago, # | 0 anyone can explain this?? problem B solutionSince the two values are equal, we can conclude that ka+(k−1)b=0. a=k−1 and b=−k produces an answer •  » » 3 months ago, # ^ | 0 they have performed mathematical operations and resolved it ... you might find this helpful : https://www.youtube.com/watch?v=2L326KCBqug&t=4shappy coding :) • » » 3 months ago, # ^ | 0 In problem b you can have two cases when n is even and when even is odd, this is how we derive the solution for both cases. ## case 1: n is even:-> let the total sum of the array be s then a1+a2+....+an=s, and we also know that a1+a2=s and a3+a4=s and so on, therefore we get the equation, s*(n/2)=s. Now since n can not be 0 we conclude that s has to be 0,so the array looks something like ## [x -x x -x....x -x]. case 2: n is odd:-> let the total sum of the array be s then a1+a2+....+an=s, now we already know what we have to do when n is even therefore it makes sense to divide the array as 1(odd part)+(n-1)(even part), now we can extend the idea of case 1 for a2 to an, so we know that a2+a3=s, a4+a5=s and so on.. therefore the equation becomes a1+(n/2)*s=s, and we also know that a1+a2=s. Solving these two linear equations we get a1=s*(1-(n/2)) and a2=(n/2)*s, for simplicity i took s as 1. so the array looks something like: [(1-n/2) (n/2) (1-n/2) (n/2).....(1-n/2) (n/2)] ## here is my implementation of the problem: https://codeforces.com/contest/1779/submission/187770011 •  » » » 3 months ago, # ^ | 0 so....what if n/2 bigger than 5000? •  » » » » 3 months ago, # ^ | 0 see the range of n mate, it is upto 1000, and also i took s as 1 for that purpose. •  » » » 3 months ago, # ^ | 0 Thank you  » 3 months ago, # | ← Rev. 2 → +7 Alternative explanation for Div2D. Observation 1: If$a_i b[i]$(i.e next bigger element in$b$). This can be preprocessed using a monotonic stack. This is a standard problem so I'll skip the details, but I'll assume you can precompute$nx_i$for all$i$in$O(n)$time. See https://leetcode.com/problems/next-greater-element-ii/ for example. I'll also treat$b$as a set using$v\in b$to denote a value in the array$b$. For each$v \in b$, let$indices[v]={u_1, ..., u_k }$be a set of all the indices with value$v$:$b[u_j]=v$. We can divide$indices[v]$into "slots"$[u_1, u_2, ..., u_{i_1} ], [u_{i_1+1},..., u_{i_2}],..., [u_{i_r+1}, ..., u_{k}]$where each slot is separated by an element with$b$value greater than$v$. For example, first slot separated from second by$nx_{u_1}$, and so on. This means that the interval for scissor with length$v$cannot cross the slots in$indices[v]$. Now we proceed greedily. If$x_i \not\in b$, then there is no point using$x_i$, so skip it. If$x_i \in b$, then we look at$indices[x_i]$. Take the smallest index$i_{\min}\in indices[x_i]$, and let$j_{\max}=nx_{i_{\min}}$. We trim all the indices in$indices[x_i]$in the range$[i_{\min}, j_{\max})$by repeatedly removing the smallest index until the slot is entirely trimmed. Some care should be taken if$a_{i_{\min}}=b_{i_{\min}}$since we can skip this index (without starting a new slot). And that's it, in the end, we check if$a_i=b_i$after all the trimming. If it is, we return true, otherwise False. C++ Implementation Details:$indices[v]$is implemented as a map from int (value of$b$) to set where$indices[v]$contains all the indices with value$v$in$b$.  » 3 months ago, # | 0 Can someone please explain lemma 2 of problem E in more simple words. I don’t get why degree of every vertex in Si will be higher than Sj for (i  » 3 months ago, # | ← Rev. 2 → -15 i may sound a fool or someone who have less knowledge but in problem H cant we just do : sort the array ( not the original but make another array that have same elements ) Then we have the sorted array , so 1...n/2 elements we will put in an array namely smallelements(lets say), and next n/2+1...n elements in an array namely largeelements(lets say) Then with repsect to original array we will check that whether a[i] is present in which array (smallelments or largeelements)... if a[i] is in smallelements we will print '0' else if a[i] is in largeelements we will print 1. FOR THE CASES WHERE DISTINCT ELEMENTS ARE JUST '1' we will simply print 1 for n times anyone can correct me please? why my this approach is wrong? •  » » 3 months ago, # ^ | 0 Why would you think that it's correct? •  » » » 3 months ago, # ^ | 0 i am not saying this is correct, but i am asking to correct my thinking •  » » » » 3 months ago, # ^ | +1 An easy way to see why it's incorrect is 1 2 3 10.There is simply nothing correct in your solution(except that the answer is all 1s if the elements are all equal). I'm really confused by how you came up with that solution. •  » » » » » 3 months ago, # ^ | 0 thanks for letting me know why it is incorrect, with time the approach will get good. •  » » 3 months ago, # ^ | ← Rev. 5 → -14 Because the problem H is designed for LGMs, so if someone is not, their approach will be very likely wrong.Update: wtf downvote???Update2: It's awful to get downvoted but don't know why... •  » » » 3 months ago, # ^ | 0 Hahaha  » 3 months ago, # | ← Rev. 4 → 0 D- Wrong Answer in 2. 187839619 [](https://codeforces.com/contest/1779/submission/187839619)idea :17a-> 8 8 8 8 7 8 8b-> 7 5 6 5 7 5 66x-> 7 5 5 5 6 6Output : YESI'm storing all the elements of array b into a set in decreasing order.. First element is 7, so I'll take all the position of 7 of B and store them in an ordered set.. then for 6 I'll check if there is any value greater then 6, located in between two consecutive positions of 6.. If yes, then segment for 6 will increase... here two segments are needed for 6.. so the minimum occurrence of 6 in array x should be 2.. otherwise, ans is NO.. I'll check this for every unique value of array b.. Is there anything wrong with this idea? •  » » 3 months ago, # ^ | 0 Take a look at Ticket 16662 from CF Stress for a counter example. •  » » » 3 months ago, # ^ | ← Rev. 2 → 0 Thanks.. Didn't know about this.  » 3 months ago, # | 0 Fast & perfect editorial  » 3 months ago, # | +1 This contest was probably not good for #1 tourist  » 3 months ago, # | 0 That moment when you realize all that time you were trying to solve a version of$E$where in each game only$1$player is chosen and the other is the winner of the previous game.  » 3 months ago, # | 0 More and more vegetable,what should I do?  » 3 months ago, # | 0 Thank for your fast tutorial!  » 3 months ago, # | 0 We don't often see so fast tutorial like this.  » 3 months ago, # | 0 I had great difficulty in C. My idea was to use Segment tree but I WA on 2 many times. (Who can help to hack me? Please)The Segment Tree includes the maxinum and the mininum of each section. First, Reverse traversal [1~m-1]. s1 = 0 if sum[i] < sum[m] — s1: s1 = s1 + 2 * query_max{a_i+1~m} update(the location of the maxinum, -maxinum) Then, traversal [m+1~n]. s2 = 0 if sum[i] + s2 < sum[m]: s2 = s2 — 2 * query_min{a_m+1~n} update(the location of the mininum, -mininum) Please help.... QWQ  » 3 months ago, # | 0 will there be a tutorial for bonus problem :")  » 3 months ago, # | +11 jiangly fanbase strong lol  » 3 months ago, # | ← Rev. 2 → 0 can anyone please tell me where my solution is wrong:https://codeforces.com/contest/1779/submission/187871735Thanks in advanceEdit: nvmi.. i was stupid  » 3 months ago, # | ← Rev. 3 → +26 Bonus F: After using the hint 6, you will find that this problem equals to choosing some non intersecting subtrees and make them have an xor sum of$s$. After you get a solution using whatever way (not neccessary with <=6 operations), you can make it within 6 steps using this simple trick about xor vector basis, and you will find that if it is possible to do so, you will always get an answer with less than$\log v+1$steps. •  » » 3 months ago, # ^ | ← Rev. 2 → +11 Really appreciate that there is a 'bonus' for every problem, and can keep me think deeper about those interesting problems:)  » 3 months ago, # | +5 n0sk1ll, any insights on how you implemented the adaptive checker for E? •  » » 3 months ago, # ^ | +8 Usually, adaptive jury is implemented by fixing some invariant in the input. In this one, I fixed the whole tournament graph, but allowed permutations (i.e. the resulting graph after all participants' queries have been asked will be isomorphic to the jury's initially intended one). Jury permutes the graph in a way such that the newly asked vertices will always have the smallest possible (available) out-degree, meaning that there is practically no information about the winners before$n-1$queries are asked. In fact, there exists a solution which uses exactly$n-1$queries — the tests seem to be strong. (and in practice, all fake solutions fail to squeeze into$2n$queries, which was the constraint in the problem) •  » » » 3 months ago, # ^ | +5 Yeah, I always wondered how adaptive interactors are written. It seems an impressive idea to always have smallest possible out-degree during interaction.Thanks a lot for sharing!  » 3 months ago, # | 0 I passed problem H with the following fix of the fake greedy:While expanding from size 2 to size 4, we enumerate all the 15 ways instead of using greedy. I don't know if it's correct or not. Can anyone prove its correctness or come up with a counterexample? •  » » 3 months ago, # ^ | 0 My intuition suggests that this is wrong, but I also see why it may be hard to construct a counter test.n0sk1ll: Do you know how to construct a hack? •  » » » 3 months ago, # ^ | ← Rev. 2 → 0 My intuition tells me that one should still check at least$50\,000$subsets (in a greedy solution), and that there exist counter-tests. Although, I don't have a particular hack.  » 3 months ago, # | ← Rev. 2 → 0 In Problem E Lemma 2,We can also conclude that x has a higher out-degree than y for each x∈Si, y∈Sj, i •  » » 3 months ago, # ^ | 0 Please someone explain this •  » » 3 months ago, # ^ | 0 Because for every pair (i,j) (i  » 3 months ago, # | 0 Anyone have solution Bonus Problem for C ?  » 3 months ago, # | 0 can someone please explain that does the editorial for Task — C means in simple terms and its implementation.  » 3 months ago, # | +3 1779D in second hint, I think it will be x >= bi •  » » 3 months ago, # ^ | 0$x \geq b_i$is correct, I fixed it now :)  » 3 months ago, # | ← Rev. 2 → 0 How did some people used DSU in solving D ? Example jiangly  » 3 months ago, # | +3 Can anybody explain me D problem solution using segment trees??? •  » » 3 months ago, # ^ | +1 I solved it using segment tree 187802839. The only purpose of the segment tree is to be able to calculate the maximum element of b in the range [l, r).I'll try to explain my solution. If for any i, b[i] > a[i], answer is NO. If a[i] == b[i] then this hair doesn't need a razor. If a[i] > b[i], then we need to cut hair i, and so there must be a razor with length b[i], else answer is NO. Now the only thing is that when we make a cut using razor x on the interval [l, r), there must not be any element of b in the range [l, r) such that b[i] > x. If there exist such b[i] > x, we will cut short i to length x < b[i] which can not be grown back.A conclusion from above is that maximum element of b in range [l, r) must be <= x. To find the maximum element of b in range [l, r) in O(log n) time, we use a segment tree. A even better data structure to use is a sparse table which can return the maximum of a range in O(1).All I do is store in a map, razor of which length will have to cut which indices. And then I try to distribute the ranges among all razors available of that length. •  » » » 3 months ago, # ^ | 0 Why is my Seg tree implementation giving WA? can you please debug?https://codeforces.com/contest/1779/submission/187831216  » 3 months ago, # | 0 About problem H, I have two questions: How to construct a test with over$1000$subsets we have to consider (not$8000$, just$1000$). How to implemented quickly in the meet in the middle part (I only know to use sort and binary search). •  » » 3 months ago, # ^ | +10 Make all (reachable) big subsets intersect. I used different strategies, the simplest of which is generating$15$numbers close to each other by value. There will be$\binom{15}{8} = 6425$different subsets, all having similar value, and all are intersecting. Fill the rest of the array in a way such that the "smallest" subset can be extended into a full solution, but others cannot. In practice, more than$1000$subsets would have to be considered in any solution. Write two pointers instead of binary search. As for sorting, It is possible to sort all subsets of an array of length$n$in$O(2^n)$. Consider that all subsets of some prefix$a_1, a_2, \ldots a_i$are already sorted, let their array be$b_1,b_2,\ldots b_k$where$k=2^i$, and let$x = a_{i+1}$be the new element we consider. The new subsets we add will have sums$b_1+x, b_2+x, \ldots b_k+x$, and in that order since$b$is sorted from previous steps. We only need to merge two already sorted arrays, which is possible in$O(k)$.  » 3 months ago, # | 0 Can anyone explain how non-intersecting subtrees can be ensured in problem F?  » 3 months ago, # | 0 I love these bounce problems thank you for the good contest (⁠｡⁠♡⁠‿⁠♡⁠｡⁠)  » 3 months ago, # | ← Rev. 2 → 0 nvm  » 3 months ago, # | ← Rev. 3 → 0 From the editorial of problem C:Let pi=a1+a2+…ai and suppose that px •  » » 3 months ago, # ^ | ← Rev. 2 → 0 Let m=5, We need p5 p4+a5 a5<0 (regardless of a1,a2,a3,a4) We need p5 p3+a4+a5 a4+a5<0 => a4<-a5 (regardless of a1,a2,a3) We need p5 p2+a3+a4+a5 a3+a4+a5<0 => a3<-a4-a5 (regardless of a1,a2) ................. •  » » » 2 months ago, # ^ | 0 Thanks.  » 3 months ago, # | +4 I solved problem D all by myself (after the contest of course) using a monotonic stack approach. I have no one to share it with but I feel happy because that's probably the most challenging problem I've solved with no hints  » 3 months ago, # | 0 In problem C, I'm wondering why moving from right to left is correct than moving from left to right •  » » 3 months ago, # ^ | 0 Let m=5, We need p5 p4+a5 a5<0 (regardless of a1,a2,a3,a4) We need p5 p3+a4+a5 a4+a5<0 => a4<-a5 (regardless of a1,a2,a3) We need p5 p2+a3+a4+a5 a3+a4+a5<0 => a3<-a4-a5 (regardless of a1,a2) .................  » 3 months ago, # | 0 For D can someone point out a flaw in the following algorithm: 1)initially ensure a[i]>=b[i] for all 1<=i<=n 2)maintain a set of indices that have been "fixed" i.e you cannot cross them with another razor 3)now consider the largest element in b such that the index it is at is not fixed 4)now check whether or not we have a razor that has the required size, if there is no such razor we are forced to have a[i]==b[i] there and if that is not the case find the smallest element greater than current index in the set of fixed indices and we can use the razor in this segement(i.e starting from the current id to the lower bound of this id in the set) 5)also in my implementation I use a priorityqueue(multiset) to store b's i.e queue is ordered by greatest b and then smaller i implemntation:https://codeforces.com/contest/1779/submission/187982510 PS: ignore tc values(was trying to debug) •  » » 3 months ago, # ^ | 0 Take a look at Ticket 16668 from CF Stress for a counter example. •  » » » 3 months ago, # ^ | 0 Thanks A lot it was a very small bug that I missed during implementation  » 3 months ago, # | +24 We have a simple way to solve E with$n\$ querys, and to be skipped.My submission: 187829528 and the one coincides with mine: 187788613.The code is short and simple so it is easy to be close with others without leaking I think.
•  » » 3 months ago, # ^ |   0 So how can I complain for this. :(
 » 3 months ago, # |   0 For D can someone point out a flaw in the following algorithm using CFStress. implemntation:https://codeforces.com/contest/1779/submission/188025603 .
•  » » 3 months ago, # ^ |   0 Take a look at Ticket 16672 from CF Stress for a counter example.
 » 3 months ago, # |   0 Anyone mind to post the solution for E's bonus problem?Thanks in advance
 » 3 months ago, # |   0 In F, I have a solution in mind for finding if it is possible to get xor=0 but how to restore the steps is what I can't figure out. I would love it if someone could help. Thankyou
 » 3 months ago, # |   0 What does "we are only interested in the closest road of each direction to the big triangle's side" means in G's solution? More specifically, what does the "closet road of each direction" means?
•  » » 2 months ago, # ^ |   0 same question here. The expression is so confusing and suprisingly there are not much people talking about it.
 » 3 months ago, # |   0 Why this Seg tree implementation of D is giving WA?? https://codeforces.com/contest/1779/submission/187831216
•  » » 7 weeks ago, # ^ |   0 Take a look at Ticket 16707 from CF Stress for a counter example.
 » 2 months ago, # | ← Rev. 2 →   0 can someone please tell me what's wrong with this solution? 189201127 edit — sorry, my bad I didn't read the question properly
 » 2 months ago, # |   0 Problem G's solution is very confusing. Maybe too obvious to explain the meaning of "closest road to the big triangle's side"?
•  » » 2 months ago, # ^ |   0 Solved it. "closest road to the big triangle's side" refer to the closest road that is parallel with the corresponding big triangle's side. And the proving is fun, it only takes me about 3 hours of my sleep to do the "case works"
 » 2 months ago, # |   0 For everyone struggling with H's TLE, here's a little something too TRIVIAL for the solution to mention: just ignore all the cases of which sum is lower than (S * k / 32) (k is the number of elements of the case and S is the total sum of all elements). Pretty TRIVIAL right? Works like magic(at least for me 1000ms -> 100ms) and here's the code (In Java)190213361 btw since it only takes less than 10% of the TL, it makes you wonder what will happen if you replace some of the techs with brute force.
 » 2 months ago, # | ← Rev. 2 →   0 Can someone help me in F? It is clear that if we can find 2 non intersecting even subtrees whose XOR sum is XOR sum of all nodes, then we can solve the problem. But why is this condition necessary?
 » 3 weeks ago, # | ← Rev. 2 →   0 In Question D, wont popping the stack be O(m), and since we're doing it for all i [1,n] , the overall time complexity be O(n.m)?I had the exact same solution just instead of stack, I used a set and instead of popping until satisfaction I used binary search to find until where I have to erase and used erase(range) to erase that part. This solution gives me TLE. PLease help.https://codeforces.com/contest/1779/submission/196266398EDIT : I found flaw in my thinking — there are only m thinkgs to pop in total at max, so it wont be O(n.m) , it will be O(max(n,'things to be popped' )) == O(n)