Блог пользователя vovuh

Автор vovuh, история, 4 года назад, перевод, По-русски

1374A - Required Remainder

Идея: vovuh

Разбор
Решение

1374B - Multiply by 2, divide by 6

Идея: vovuh

Разбор
Решение

1374C - Move Brackets

Идея: MikeMirzayanov

Разбор
Решение

1374D - Zero Remainder Array

Идея: vovuh

Разбор
Решение

1374E1 - Reading Books (easy version)

Идея: MikeMirzayanov

Разбор
Решение

1374E2 - Reading Books (hard version)

Идея: MikeMirzayanov

Разбор
Решение

1374F - Cyclic Shifts Sorting

Идея: MikeMirzayanov

Разбор
Решение
Разбор задач Codeforces Round 653 (Div. 3)
  • Проголосовать: нравится
  • +92
  • Проголосовать: не нравится

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

Please Someone Explain Why i am Getting TLE in Test case#5 of Question D

My Submission is : 85376735

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

    You didn't take into account the case when till the end a[i]==a[j] then first condition is overlooked and cnt is increased and i is incremented and this keeps going on. Then it becomes O(n^2). Also you have to use long long to prevent overflow. I made minor changes to your code, and it got accepted. Link

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

For problem D-Zero Remainder Array, why does my code get a TLE on test 8 despite using a similar approach? My code: https://codeforces.com/contest/1374/submission/85382181

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

    Use map instead of unordered map. Unordered map worst time complexity is O(N).Even I got penalty :(

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

      Please tell me how you come up with an approach to solve the first question.

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

        I just found the nearest factor of x which is less than or equal to n. I'll add y to it and see if it's greater than n. If it's greater than n then I'll subtract x from it

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

      Even my first submission was with an unordered_map :(. Got penalty.

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

    Or, you can use a custom hash function.

    This is a really good blog post on the topic.

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

Finally Editorial Published. Thanks vovuh and team.

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

After Long Time

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

Please organize another div3 round. This was a div3 round after a long time. Newbies like me need div3 rounds continuously.

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

Am I the only one who think that this was the best round ever ?!

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

Can E1 be done using DP?

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

Ahsant. problem E2 is really nice (and hard). But the proof is not clear to me. I mean the analysis of number of times the operation is done.

Upd: Yeah got it now. The editorial was also clean. Well that's why I always take part in Div3s.

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

I solved E2 by applying ternary search on number of common books, but i don't have any proof that it is unimodal. Can someone explain me how it is unimodal or my solution is hackable?

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

Can anyone explain other solutions of E2, as I saw many solution using bit tree ,treaps, ternary search.

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

Gr8 set of questions.....All of them seem doable.... although problem E(s) was a bit heavy on maintenance side....

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

Could someone please help me with the problem E1 easy version. I implemented the idea which is iterating over the books of the three vectors and finding the cheapest price, but it always gives a wrong answer on test case 13.My answer is cheaper than the actual answer given by the system. Thanks in advance

This is my submission to the problem

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

    your problem is in line 258, you should make ctr1 = i + 1 not ctr1 = i because you want to test the next two books you can get not books you've already took fix it and you will get AC

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

For Problem D: Find the ai % k for each element in a. Then find the one with the highest frequency (mode).

Let x be the number with highest frequency and f be the number of times it occurred .

If the new formed array (with ai % k) is empty or full of zeros the answer will be 0. Else the answer will be x + (k * (f — 1)) + 1.

Solution Python3 -- > 85419324

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

    I did not get the + 1 part as to why the ans = ( ) + 1. Once you reach k times some number, you need key number of steps to reach key. why k *() + key + 1?

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

      The +1 is because the first number used is 0, not 1. So we need one step more than the highest number we need to use.

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

      k*(value-1) + key is such a value of x which makes ai+x divisible by k

      k*(value-1) + key comes as a cost of operation 2

      +1 comes as a cost of operation 1

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

In problem B, I have another simple solution

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

    It is the same thing, you have counted the no. of 2's and 3's in the factorisation of the number in the first loop. Then the remaining 3's in the second loop and no. should be reduced to 1 for answer to exist.

»
4 года назад, # |
  Проголосовать: нравится -12 Проголосовать: не нравится
E1 to E2 so big gap.E2 tooo hard for div3..... 
E1-1600 dificulty & E2-2500 dificulty  :(
»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

In E1 we can sort all books and pick books greedily. We need to keep track of number books liked by Alice and Bob, and a stack that stores books that are liked by single person only. Code

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

Can somebody pls find the error in my code for E2 https://codeforces.com/contest/1374/submission/85464212. My procedure: Fist solve the problem like E1 and find out the number of items.If it is greater than M then erase 10 and 01 items and add 11 items.If it is less than M then we can add one 01,00,11,10 or we can remove one 11 item and add 01 and 10 items.

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

    Are you keeping in mind about having k books when deleting?. I think when after doing E1 we have say x books. If x<m then add books greedily from remaining books. If x>m then we have to delete two books (one liked by alice and one liked by bob) and add one book that both of them like

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

      Yes the condition of k is always satisfied and we cant add greedily always maybe we can remove a book both of them likes and add 10 and 01 books

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

        When x<m, why can't we add books of least price from remaining books?. After E1, condition of having k books for both is fulfilled with min price. Now, we need total m books. So, can't we just add books of min price from remaining books?

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

problem E1..wrong ans test case 5...i can't find wrong my code...please help me to finding wrong or give me some small test http://codeforces.com/contest/1374/submission/85463861

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

Codeforces Round #653 (Div. 3) D. Zero Remainder Array

In this Problem , if we consider a input — 1 2 5 4 4

then as per the solution provided,the output is 7 but if we conside like —

1 .when x = 1 , we will server one of the 4 (4+1=5 and 5%5=0) then x will become 2 2. when x = 2 , we will add it to the remaining 4 and it will become 6 and x will become 3 3. At this step , x is incremented and becomes 4 4. Now if we add 4 to the 6 , it will become 10 and 10%5==0 and then x becomes 5

So the answer should be 5 . . Is it ? ? ?

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

    It was given that you can't apply first operation to same indexed element more than once. You have performed first operation of adding+incrementing x twice on second element

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

    No. You can add x for the number in array only one time. You cant do 4 + 2 + 4.

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

    No, because this line was mentioned in the question. You cant do more than one operation on the same element "The first operation can be applied no more than once to each i from 1 to n."

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

My Video solution for the contest

Problem A,Problem B, Problem C The video is time stamped for your convenience (check the description).

Problem D
Problem E

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

Can someone please help me, why my submission of problem A is getting TLE if I'm using a single while loop for a test case.

My submission: https://codeforces.com/contest/1374/submission/85356771

Thank you!

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

    1000000000 1 99999999

    consider this test case provided many times. Your single loop will run 99999998 times in each test case, which will definitely cause TLE

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

Can someone please tell me what is wrong with this greedy approach for E2 :

Spoiler

This approach fetched me a WA on test 12. I looked in the status and a lot of people got the same result on same test case. Can someone pls help. Thanks in advance

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

    Consider the test case below — your method would choose book 3 over 1+2 but then you still need to add another book which leaves you with a best cost of 5. You could instead pick 1+2 and get a cost of 4.

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

"and move it to the beginning (so the negative balance becomes zero again and the answer increases by one). This move is much more optimally than moving the current closing bracket to the right."

"Moving a closing bracket to end" or "an opening bracket to beginning",doing either of these will result in the same answer ,so why the second one is optimal ?

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

    I think you are right, these moves are equal. I can be very stupid sometimes, sorry for this confusing sentence, I'll remove it from the editorial.

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

Can someone explain me why I am getting Wrong Answer in E2. https://codeforces.com/contest/1374/submission/85472085

My logic: lets call the 1 1 books as both. if both+Alice < k: then not possible also if both+Bob <k then not possible

Otherwise I sort the books. Then fulfill the condition of k by taking the cheapest book. Finally I take the remaining elements and sort them and take the cheapest books to complete the set

Edit: I am new to competitive programming so can you also help me to make my code efficient.

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

    Man, if you are a newbie, why then try a problem that only grandmasters can solve?

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

      Why not solve it just for the sake of problem solving.

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

      Just like Errichto said if you have ideas for a problem then exhaust them before checking the solution. If in the end he cannot solve it, then fine but don't discourage people from trying

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

I had a really simple solution for E1:

I claim that Alice and Bob will both read exactly $$$k$$$ books that they each like. If we had a selection where both of them read more than $$$k$$$ books that they liked, then we can subtract out books (which decreases the total time) of $$$11, 10, 01$$$ until one of them has read exactly $$$k$$$ books that they like and the other has read $$$K \geq k$$$ books that they like. However, if one of them has liked $$$K-k$$$ more books, then they must have read at least $$$K-k$$$ books where they were the only one to like it. Thus, we can take out these books as well, which gives us a selection of books where they read exactly $$$k$$$ books that they each like, which is better than the original selection (where at least one person liked more than $$$k$$$ books).

Now, based on the claim, if they read a $$$10$$$ book, they must also read a corresponding $$$01$$$ book in the optimal solution. Thus, the problem now just comes down to pairing these $$$10$$$ and $$$01$$$ books. We can do this greedily (I'll leave the proof for you). We sort the $$$10$$$ and $$$01$$$ books independently, and match them from lowest time to highest. Now, we essentially have created $$$11$$$ books from $$$10$$$ and $$$01$$$ books, where the time of this double-book is the sum of times of its two parts. We can just treat this double-book the same as a normal $$$11$$$ book, so we can sort the $$$11$$$ and $$$10+01$$$ books all together and take the first $$$k$$$ smallest times to find our answer.

Code: https://codeforces.com/contest/1374/submission/85336049

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

Has anyone solved problem D using sorting and 2 pointer approach?

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

Can anyone please help why am i getting wrong answer on test case 12 of problem E2. My code — https://codeforces.com/contest/1374/submission/85427982 Initially I have taken all books which is interesting for both.Then if it is less than k then i have taken from remaining books which are in sorted order until the count of interesting books for both is equal to k.After that i have replaced the books interesting for both with books interesting to 1 only(2 books added for each 1 book interesting to both removed).Afterwards I have just added more books to make the total count m.I am not being able to figure out what is wrong in this approach. Plz. help.

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

I had different approach to E1, solved it greedily.

We can separate books into 3 groups : the ones that Alice, Bob and both of them like respectively.

Sort them, and if the sum of the minimum element in "Alice" group and "Bob" group is less than the minimum element in "Both of them like" group, then i add up this sum to the answer, otherwise i add to the answer the minimum number from the "Both of them like" group.

Proof:

There are finite number of possibilities so the answer exsistes. If we replace books from the answer, that only Alice likes, by the same number of the smallest elements from the "Alice" group, answer will stay the answer, i mean that value of the answer won't get bigger. The same for the books from the answer, that only Bob likes.

If the sum of the smallest(unused) book from the asnwer, that only Alice likes and the one only Bob likes is smaller than biggest book that both Alice and Bob like, then we replace that one book by these two books, value of the answer won't get bigger, so it will remain an answer. Do it untill can't be done.

If the smallest book(unused) that both ALice and Bob like, has value smaller or equal to, the sum of the biggest by value book from the answer, that only Alice likes, and from the ones, that only Bob likes, then we can repalce these two books by that one book, and answer will remain answer, i mean answer value cannot get bigger. We do these untill it can be done.

And if we replace all the books from the answer, that both Alice and Bob like, by the same amount of smallest by value books from the group "Both ALice and Bob like", answer cannot get bigger, so it will remain an answer.

It is obvious, that there is only one such set of books to which any replacements from the above cannot be done and as shown above it is the answer.

The result we get from our greedy approach cannot have any of the replacement above, so it is the answer.

My submission

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

Why i am getting wrong answer for this submission(Problem E1): https://codeforces.com/contest/1374/submission/85476850 Please help!!

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

https://codeforces.com/contest/1374/submission/85367241 problem D.. idk why i am getting WA on tc 2...i had the same approach as in editorial...can someon help please!!

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

Imho this approach for E2 is easier: first, let's take k elements from 11 group (if this group is smaller than k — take all books from 11 group and first k - size(11) books from each 01 and 10). If number of books that we took is greater than m — the answer is -1. Now, we have some set ans of books that we took (size(ans) <= m), and we have 5 possible transitions: first 4 is to simply add the cheapest book from one of the sets, and 5th is to delete the most expensive book from 11 set and add 2 books from 01 and 10 sets (after this transition we will add cost(added) - cost(deleted) to the answer. After each of this transitions number of books in ans increases by 1, thus we have to make m - size(ans) iterations, (in each iteration we will try to add as less as possible to the answer). This approach can be easily implemented by storing pointers for each group. My code — 85363378.

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

    When you say “ first, let's take m elements from 11 group (if this group is smaller than m — take all books from 11 group and first m — size(11) books from each 01 and 10” I guess you mean K instead of m

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

Can somebody explain E2

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

    I think my approach could be a bit easier to understand. Time complexity : O(n*logn^2).

    My approach matches with Mike for the beginning.

    First create 4 separate prefix sum arrays for 11,01,10,00 types.

    For each i from 0 to m, choose i 11-types and then select best (k-i) books of 01 and 10 types in order to fulfill the requirement. So till now we have selected a total of (i + (k-i) + (k-i) = 2k-i) books. We now need m-(2k-i) more books. Let's say this value as X.

    So now you need X smallest numbers from the 3 sorted arrays(01,10,00 types)

    From here you can just apply a simple binary search to find the Xth smallest number from the 3 sorted arrays of 01,10,00 types and get the indices upto which you must include to get the total X books

    Note1: you must apply binary search on the original sorted arrays, NOT the prefix arrays.

    Note2: for 01 and 10 types, the starting indices for binary search will be from (k-i) because you have already chosen them before to fulfill the requirement.

    Now since you have found the indices(upto which you must have to include) for each array with binary search, you can simply calculate the total sum and compare it with the current minimum.

    P.S: implementation could be a bit heavy with this approach

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

Another solution for E1: I sorted 01, 10, 11 books independently. Now you need to reach k books for both Alice and Bob. So we either have to pick 11 or (a 10 and a 01). We can greedily pick whichever is cheapest. Create a new v10[i] + v01[i] books. Combine v11 books with this new tuple of books, sort them and pick the k smallest values. 85376690

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

please someone explain me this..

Then we need to find two consecutive pairs with the same first values and swap these two elements in the permutation. Because in fact these two numbers are equal in the array and have consecutive values in the permutation, we guaranteed change the parity of number of inversions.

Problem F

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

Pls explain why I'm getting WA in testcase2 of problem D. https://codeforces.com/contest/1374/submission/85355292

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

    Here in your code variable ele is storing the minimum value of all i%k whose if condition is true. lets understand this with an example,
    1
    3 3
    1 2 2
    Here d={1: 1, 2: 2} Initially, maxi=0
    Firstly, value of i will be 1 and d[1]>maxi i.e 1>0
    so, maxi becomes 1 and ele becomes 1.
    now, for i=2 condition is true, i.e d[2]>maxi i.e 2>1
    so, maxi becomes 2 but ele remains 1 as you are storing minimum value encountered. So, this is wrong as if you change maxi you should change ele accordingly.

    you can make it right by using a condition that if maxi==d[i%k] then you should choose the minimum i%k, else you should change the value of ele to current i%k.

                if d[i%k]>=maxi:
                    if(maxi==d[i%k]):
                        ele=min(i%k,ele)
                    else:
                        ele=i%k
                    maxi=d[i%k]
    

    With it your submission gets AC 85494164

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

For anyone having trouble understanding the 1374E2 - Reading Books (hard version) editorial: I think they meant 'but elements of 11-group are not free' instead of 'but elements of 00-group are not free'.

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

For problem D, consider the test case n=3, k=7 and a={1, 1, 1}. With this approach the answer would be 21. But we can do it in 7 steps only. The required remainders are {6, 6, 6}. Which can be obtained by 1+5, 2+4 and 6. So array {7, 7, 7} can be obtained in one full cycle only.

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

    You can only perform the add operation at a particular index Atmost once.

    If the problem was actually what you interpreted it to be, I guess it would've been much harder.

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

E2 is shit!

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

Hey guys, if any of you having difficulty in understanding the editorial of problem E1. Here's a video to help you out.
Thank you!

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

IS THERE ANY PROBLEM WITH THIS CODE FOR PROB B https://codeforces.com/contest/1374/submission/85385019

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

    BY THE WAY THIS IS AC code

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

      If you not found any problem with your solution.then why you post here your solution for twice.we have editorial..No need your solution for B.

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

Can't understand cyclic shifts sorting. Can someone explain why odd parity fails to give answer ?

Also why in the end two elements wont be sorted?

Problem F

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

    Let's consider you are doing cyclic shift with permutation a1,a2,a3 then after doing cyclic shift the permutation will be a3,a1,a2 . Now one thing to note here is that the number of inversions done in one cyclic shift is 2(a3 is now before a1 and a2) , so every time we perform cyclic shift, the number of inversions done are increased by two or in another way we can say that we can never swap two numbers therefore if the required number of inversions have an odd parity we can never sort them.

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

      Thanks, also why in the end two elements wont be sorted?

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

        I think that if we have put all the elements till the last third element(in the sorted order) at their correct positions then we won't get last two elements unsorted as if we get the last two elements unsorted than the parity of the number of inversions in that sub problem(that particular state) will be 1(i.e. odd) which cannot happen.

        Also as it was not mentioned in the problem that all the numbers are different therefore such a condition may arise when we have two equal numbers. But contradictory if we have equal numbers then i think we might be able to sort even if we have number of inversions with odd parity as:-

        Let's consider 1 3 1

        The number of inversions is 1 but after one cyclic shift we can actually sort it.

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

        Because two unsorted elements is one inversion, and we cannot get rid of one inversion.

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

        "Then let's just cut off the first element and solve the problem without it. At the end we have only two numbers that can be not sorted and we can check all three possibilities and choose one which is suitable for us (it's always exists because the number of inversions is even)."

        Picked this from editorial. What are the three possibilities?

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

          The three possibilities are the three cyclic permutations of the last three elements. 123 -> 123,231,312

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

      Sir, if you can kindly say what we are going to do if there are duplicate elements in the array? I am unable to understand the editorial. Plz pLz help

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

        I think in that case we should skip checking the parity of the number of inversions and do next step as it is.

        If it takes us to a situation in which the last two elements are unsorted then we can check for all the three permutations(cyclic) of the last three elements and if none of them makes the array sorted then there won't be any possible answer.

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

Please Someone Explain Why i am Getting TLE in Test case#5

my submission is : 85516199

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

Can someone help me i am getting TLE in D part Here is my submission https://codeforces.com/contest/1374/submission/85529755 Thanks

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

please help me with my solution for E1. Am getting WA. link

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

    The problem is in this part of your code

    for(ll j=x;j<x+k-c;j++)
    {
    sm=sm+v[x];
    }
    

    It must be v[j] instead of v[x]

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

Please help.I am Getting WA in Problem E2. My code:(https://codeforces.com/contest/1374/submission/85530060)

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

sorry,the code of the solution of E2 have some errors, it can't run in my computer,such as

for (auto [value, position] : st) res.push_back(position);

in the line 119 and

st.erase(prev(st.end()));

in the line 26

could any one help me? thank

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

Can anybody help me? for E2 (reading books hard version). I m getting wrong answer in test case 12 and my answer only differs by 1 from real answer.

my code if https://codeforces.com/contest/1374/submission/85595106

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

Can anyone help, what I'm doing wrong? I'm getting WA in E2.

My logic for solving this —

  • Make min heap for all 00, 01, 10, 11.
  • Get element from 11 or (01 and 10) whoever gives me lowest sum for contributing to k likes.
  • After repeating step 2 for k times, get element from 00, 01, 10, 11 whichever contributes minimum to sum and repeat this till total books read goes to m.

my submission — 85968003

Thanks in advance!

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

My approach:
First step:
I am greedily allocating the common taste books, followed by remaining books of alice and bob. With this, I am ensuring at-least k-books are included in the list and the time is minimized.

With this, easy version got accepted.

Second step:
If booksRead > m, I am reducing the numbers by replacing the individual taste with the common taste books. If booksRead < m, I am greedily allocating the least time taken book from the remaining entire books available.

It seems that I am missing something in my code. Due to that, the hard version got failed in the test case 12. Here's the submission link: https://codeforces.com/contest/1374/submission/86028907

Can someone please explain what I am missing in my code?

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

Please help me i am getting TLE in question no. D

My submission : https://codeforces.com/contest/1374/submission/86383860

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

    I assume it is IO problem. You are doing ios_base::sync_with_stdio(0);cin.tie(0); and then mixing cin and scanf. Try using only one of the IO stacks, or do not disable the sync of both.

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

I am not getting why I am getting wrong answer for problem E. Here is my solution: https://codeforces.com/contest/1374/submission/86808426

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

MikeMirzayanov,vovuh
In the problem 1374F - Cyclic Shifts Sorting, is the order of indices for performing the operations fixed?

While performing the greedy algorithm, I chose the maximum element instead and moved it to the last position. Wouldn't that give me a different order of indices?

The solution 86861838 having taken the maximum element isn't being accepted. Please clarify.

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

    If you perform the shift with the triple $$$[p_i, p_{i + 1}, p_{i + 2}]$$$, you need to print the index $$$i$$$, not $$$i+1$$$ and not $$$i+2$$$. Make sure that all indices you print are indices you (and checker) want to see.

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

Could someone help my E1 code out? I got TLE at case4. CODE

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

Problem D

Why max count always giving the maximum final value of x? (x from problem description).

Because :

say, min possible value with maxCount < max possible value with less than maxCount

which is => (maxCount-1)*k + 1 + 1 < (maxCount-2)*k + (k-1) + 1

=> 2<0 ; Impossible .

Look at this Accepted Code
»
4 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

The comment is hidden because of too negative feedback, click here to view it

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

This works too for problem B

if(n==1) return 0;
		int c{0};
		while(n>1)
		{
			if(n%6==0)
			{
				n=n/6;
			}
			else if(n%2!=0)
			{
				n=n*2;
			}
			else
			{
				return -1;
			}
			c++;
		}
		return c;
  • »
    »
    3 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    I think this is similar to the editoral.

    The official editoral just separated 6 into 2 and 3 ,and then count their times respectively.

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

Please someone, explain why am I getting Memory Limit in Test Case #5 for Question D

This is my submission: 142601616

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

for problem B why was it (cnt3−cnt2)+cnt3 please anyone explain me i am just a beginner

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

    (cnt3-cnt2) is the extra number of twos you should multiply it by n. after multiplication by twos you should divide n by cnt3 of number 6 to get zero.

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

I really really hated E2 because its a really easy question, but the implementation required is nightmarish.

Anyways, alternate O(n*log^2(n)) solution using two fenwick trees which can be quite easily optimised to O(n*log(n)) using a segment tree (but I'm too lazy to implement it).

Anways, my solution is similar to the editorial in the sense that we iterate over the number of (11's) used and then we use k — (11's) used (01's and 10's). But I use the fenwick trees to simulate this entire process.

This question can also be implemented with indexed multiset but I'm too lazy for that.

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

Why are some people crazy? Why are they showing up the solution without hiding? There is an editorial. You can make an important contribution by writing a comment that will help someone. Don't ruin anyone's importance. thank you.