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

Автор CoderAnshu, 4 года назад, По-английски

Hi Codeforces!

I am pleased to invite you to Codeforces Round #793 (Div. 2), which will take place on May/22/2022 17:35 (Moscow time). You will be given 6 problems and 2 hours to solve them.

The round will be rated for participants of Division 2 with a rating lower than 2100. Division 1 participants can participate unofficially in the round.

All problems in this round were prepared by me and rivalq. We have worked on this round for a long time and hope you find every problem interesting.

I would like to thank:

Score Distribution:

750 – 1000 – 1500 – 2000 – 2500 – 2750

Good luck and have fun! See you in the standings. Make sure to read the statements very carefully.

Thanks to competitive__programmer, video editorials for some of the problems will be available on his channel after the round.

Congratulations to winners!!

Global Top 5:

  1. jiangly, superfast AK!

  2. Beduardo

  3. SSRS_

  4. neal

  5. turmax

Official Top 5:

  1. Beduardo

  2. Brewess

  3. Kizuna_AI

  4. MagicShow

  5. csyakuoi

Special mention to AwakeAnay for the only Indian to AK the round!

UPD 1: Links to video editorials of Problem B and Problem C

UPD 2: Editorial for problems A-D is here.

UPD 3: Editorial for E is added.

UPD 4: Editorial for F is added.

  • Проголосовать: нравится
  • +616
  • Проголосовать: не нравится

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

AmShZ orz, The captain of Iranian testers

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

CoderAnshu supremacy!

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

Orz

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

As a true cyan (tester), I would recommend you to try the next problem if you get stuck ( '◡' )

Also, if you wouldn't mind
»
4 года назад, скрыть # |
 
Проголосовать: нравится +32 Проголосовать: не нравится

As a tester, the problems are fairly interesting and quite challenging.

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

As a tester, I can confirm that the problems are high-quality and interesting, and cover a good range of topics, and would recommend participating in this contest.

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

I hope it will be great #793 div.2

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

CoderAnshu lord supremacy. :)

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

A contest by Indian Coder after such a long time!!! Very Excited!! Hoping that this contest turns out to be the best in recent times.

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

As a problem setter, I would really like all of you to participate.

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

i hope the round will be a bit better than previous

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

For the last two contests I have been fsting on problem D due to stupid implementation mistakes. Hopefully this contest I will be able to break the streak.(Hopefully by solving problem D )

Edit: Broke the streak by not solving D this time.:clownglasses:

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

Удачи и приятного время провождения! До встречи в турнирной таблице.

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

As a tester, I get to write a comment for some contribution. hue hue hue.

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

Notice in the last line

Make sure to read the statements very carefully.

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

All the best Everyone !

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

Hopefully the "best of 2022" which were replaced in the previous round will be seen here.

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

I hope I solve about 3 problems and become a specialist !!

Good luck for all participant!

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

All the best for all participants

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

As not a tester,give me contribution!

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

No offense though

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

Everything is so sorted, just look at the testers list! Efforts put everywhere.

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

Much Awaited Contest

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

I will be taking part in this contest.. I am getting back after nearly 1 year.. wish me good luck bois!!

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

Btw, 793 is a semiprime number. Hope that means at least half of problems will be great!

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

Good luck!

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

Best of luck to everyone!!

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

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

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

I believe in CoderAnshu & rivalq supremacy!

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

SwapOnPermutationForces.

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

Yet another unbalanced round... #SpeedForcesOP

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

Now I can finally sit and watch my rank fall due to so many wrong submissions.

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

Problems are tricy ig.

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

Would anyone please explain why the output of problem C is 7 for this input?

1

13

1 2 3 5 6 7 7 8 8 9 9 10 10

Thanks.

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

FML, I think I have the solution for E. Rip. I think it involves traversing each tree in the forest and doing a tree DP.

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

Guys!! Hope you liked the round. Please share your feedback on every problem. I will be really thankful.

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

LinearForces :-)

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

C felt kinda tricky.

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

Why does the number of solvers of problem C go so high?

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

I can solve D quickly, but I can't handle A,B,C.It's weird.

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

amazing samples guys

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

What's the solution to D?

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

    I create egdes as a circle, find a edge to remove, then for each two node (x, y) I need to change the degree, I remove the edge of (y, y + 1) and add the edge (x, y + 1) 158057894

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

    If number of $$$1$$$'s is odd or there are no $$$1$$$'s at all the answer is "no", because the sum of degrees should be even (each edge is considered in $$$2$$$ degrees) and we should have at least $$$2$$$ leaves.

    To construct a solution, if the string is all $$$1$$$'s, just choose anyone of them to be the root and connect it to all the other nodes.

    Otherwise, connect each $$$0$$$ to the node before it ($$$0$$$ at node $$$1$$$ is connected to node $$$n$$$). Now we have chains starting with $$$1$$$ and ending with $$$0$$$ (call such endpoints "tails"). To make all the nodes in these chains valid, we have to connect odd number of edges to the tails.

    To do so, if all the $$$1$$$'s are consumed in the chains, just connect the tail of any chain to the tails of all the other chains. Otherwise, choose any unconsumed $$$1$$$ and connect it to all the chain tails and to any other unconsumed $$$1$$$.

    Such construction guarantees that no intersections occur, as we first add some edges between adjacent nodes (can't be intersected) and at the end we choose only one node and connect it to some other nodes.

    Submission

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

can anyone explain that how to solce c :*

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

    I just binary searched the answer. You can in linear time check whether an answer X is possible. Although I have to say it was tricky to implement, two WA submissions and like 30 minutes debugging for edge cases

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

    All numbers that appeared two or more times can appear in LIS of both original and reversed array. Then we distribute all numbers that appeared only once evenly in LIS of original array and reversed array. Note that we can share one number in both LISs, so the answer is x + (y + 1) / 2 where x is the number of numbers that appeared two or more times, and y is number of numbers that appeared once.

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

    I just count how many number appears 2 times or more as m2, 1 time as m1 and the answer is m2 + (m1 + 1) / 2.

    Example: 2 2 3 4 5 6 6 -> 2 3 6 5 6 4 2

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

Spent near one hour on E and then realized I made the wrong observation. I think A-E are all great problems.

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

Those who solved problem C with unordered_map, depending on the compiler version, fall on test 26 or 28. Test 28 is a my hack test :)

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

I think Problem B was slightly confusing in my opinion.I am not able to understand B problem clearly.

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

how to solve E?

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

    Build a graph with $$$(x_i, y_i)$$$ as edges. For each i, find path from $$$i$$$ to $$$a_i$$$. A pair $$$(x, y)$$$ can be swapped if the edge $$$(x, y)$$$ is the end of two paths. Edit: add code 158085317

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

      By "...the end pf two paths" do you mean the path where all of it's subtree nodes are located in their correct position?

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

        Sorry I don't get what you mean but I just realized that it may be beneficial to name an edge with its index rather than its two end points since vertices are moving. Let's say the path from $$$i$$$ to $$$a_i$$$ consists of edge $$$e_{b_1}, e_{b_2}, \dots, e_{b_n}$$$, and path from $$$j$$$ to $$$a_j$$$ consists of edge $$$e_{c_1}, e_{c_2}, \dots, e_{c_m}$$$. If $$$e_{b_n} = e_{c_m}$$$, we can swap that edge. Then remove that edge from the end of two two paths and look for another edge that is the end of some two paths.

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

Great round! Especially enjoyed E and F.

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

i literally did c in 8 minutes by using same approach as in editorial but was not confident enough and waited for it to fail main tests. but it passed :) edit: people made it hard just because it is problem "C". conclusion: don't judge a book by its cover

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

Great problems, although didn’t solve E.

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

Why unordered map gives tle on codeforces?

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

is CF getting harder or people are getting so much better? Feels like an 1800 rate problem a few months ago would be just 1600 now. So many solved C

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

bullshit pretest for C

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

Ratings updated preliminarily. We will remove cheaters and update the ratings again soon!

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

Here is some feedback, loved the round overall! I think BCD in particular are excellent.

A
B
C
D
E
»
4 года назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

158034396

why TLE?

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

Nice round, loved the problems.

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

such a poor round wasted 2 hours

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

A should have been little easier :( I wasted more than 20 mins thinking there should be easier solution for A by having right one in my mind. Lesson learnt: Solve what comes to your mind first for A atleast

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

In 3rd Problem, If the array a = [1,2,2] , Then according to codeforces, correct answer is 2. Can anyone explain how is it possible. My Claim : Answer should be 1 and not 2 since it is asked "strictly increasing".

Thanks in Advance !!!

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

I don´t understand the problem B, why is {0,2,1} = 0?

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

Thanks for super fast editorial.

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

Good Round, I loved thinking about problem C, it was simple but tricky. going to remember it always. A great Round from an Indian problem setter.

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

for problem :c

test case :
5
1 1 2 3 3

the given answer is 3,could some one please explain how it can be 3.

i am getting answer as 2

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

I have some doubt in problem C.

For this test case

14

150482826 299981842 846268930 299981842 16711396 299981842 160038184 87399809 36731648 410799926 150482826 16711396 410799926 355178268

answer is 7, but my solution is outputting 6, may I know the problem here?

(My approach is to build a sequence greedily by sorting the array and then taking minimum of them and then placing rest of the numbers on left and right of that minimum found (leftMost after sorting) (Counting them just), so that I get a strictly increasing sequence even if reverse, numbers that come twice are put in either of the sides.)

Then I output the final answer as min(leftSum, rightSum) + 1

I am counting these leftSum and rightSum in the above approach.

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

    You are almost correct, but instead of always taking the minimum as the one being used by both the "leftSum" and the "rightSum", you can choose any of the number to be shared by both sequence. An example of this is "5 3 4 5 3" where both the left sequence and the right sequence used "4" in the LIS. Hope this helps :)

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

Thanks for this wonderful round!

I am finally a CM.

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

in problem B, with the input:

1

8

0 1 2 7 4 5 3 6

it seems like the answer is not correct, if im wrong, pls point out my mistakes.

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

It's Indian territory. love IIT CoderAnshu

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

In problem D:

for input of: 1 4 1100

my submission: [submission:https://mirror.codeforces.com/contest/1682/submission/158117585] gives output of: YES 3 4 1 3 2 4 but the accepted answer is: YES 2 3 3 4 4 1

but I think my printed solution should also get accepted.. can someone please help me with this one. Thanks in Adv!!

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

Please help me

My solution for problem E got RTE in test 8, but I don't know why; please tell me why

Thank you!

My submission: https://mirror.codeforces.com/contest/1682/submission/158149795