NemanjaSo2005's blog

By NemanjaSo2005, history, 2 years ago, In English

Hello, Codeforces!

Riblji_Keksic and I are glad to invite you to Codeforces Round 911 (Div. 2), which will start on Nov/26/2023 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.

All problems are invented and prepared by Riblji_Keksic and me.

Special thanks go to n0sk1ll and TimDee for their great work during the testing process of the round.

And of course, I would love to thank the people who made this round possible:

We hope that you will participate and enjoy the round!

Update 1: The score distribution is 500 — 1000 — 1250 — 2000 — 2250 — 3000

Update 2: Congratulations to the winners:

Div. 2:

  1. HimenoTowa

  2. vflower

  3. eloge

  4. sadness

  5. Im_dik

  6. Gold_Record

  7. Haaland

  8. mban259

  9. hazzler

  10. 111445

All participants:

  1. fallleaves07

  2. turmax

  3. A_G

  4. ppavic

  5. minato

  6. mzen

  7. potato167

  8. Rubikun

  9. Sugar_fan

  10. emthrm

First solvers:

A. people_plus_plus in 0:01

B. A_G in 0:04

C. WLZ in 0:04

D. A_G in 0:12

E. Grindforces123 in 0:17

F. turmax in 0:26

Update 3: Editorial

  • Vote: I like it
  • +338
  • Vote: I do not like it

| Write comment?
»
2 years ago, hide # |
 
Vote: I like it +139 Vote: I do not like it

Codeforces Round 911 whats your emergency?

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it +88 Vote: I do not like it

    My Rating is dead.

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    I got stuck o B, please help!!

    • »
      »
      »
      2 years ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      When you think of the parity of numbers, there are three distinct situations that can be easily proven.

      1) If all three numbers are either odd or even, then the answer will be 1 1 1.

      2) If two of the numbers are even and the other one is odd, then the answer will be the odd number.

      3) If two of the numbers are odd and the other one is even, then the answer will be the even number.

      • »
        »
        »
        »
        2 years ago, hide # ^ |
         
        Vote: I like it 0 Vote: I do not like it

        for a = 1, b = 3, c = 7 can you tell stepwise how can I achieve all numbers as 1

        • »
          »
          »
          »
          »
          2 years ago, hide # ^ |
           
          Vote: I like it 0 Vote: I do not like it

          Erase 2 and 3 three times and write 1 each time. Then you have 4 1s, no 2s, and 4 3s. Now use the following procedure: erase 1 and 3, writing 2. Then erase 2 and 3, and write 1. This decreases the number of 3s by 2, and doesn't change the number of 1s. Do this twice, and you have 4 1s and nothing else.

        • »
          »
          »
          »
          »
          2 years ago, hide # ^ |
          Rev. 2  
          Vote: I like it 0 Vote: I do not like it

          1,3,7 notice that if the other two of the numbers are the same you can always get the answer for A 1 3 7 -> 2 2 6 > 3 1 5 > 2 2 4 > 3 1 3 > 2 2 2

          More generally, the strategy is to alternate increasing the the one we are picking and the minimum of the other 2 numbers until the third number decreases and reaches the other number. So if we are picking A and b < c, we alternate between A and B until b=c.

    • »
      »
      »
      2 years ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      Since, 1^2^3 = 0, after any operation you cannot change the xor. So if xor != 0, then only xor can be achieved, it can be achieved by doing n-1 operations. Otherwise, all can be achieved by the following operations, let's say you want xor to be 1, then if 2 and 3 exists then do operation on them, otherwise do it on 1 and other existing number. This will ensure that at least one 1 exists in array after any operations.

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it +3 Vote: I do not like it

    my laptop is on fire send the firefighters

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it +3 Vote: I do not like it

    Just a small thing, sir!

»
2 years ago, hide # |
 
Vote: I like it +46 Vote: I do not like it

Definitely a round I enjoyed testing! NemanjaSo2005 Riblji_Keksic orz

»
2 years ago, hide # |
 
Vote: I like it +9 Vote: I do not like it

Canon round.

»
2 years ago, hide # |
 
Vote: I like it +10 Vote: I do not like it

As a tester,the problemset is dramatic.Hope you enjoy it :)

»
2 years ago, hide # |
 
Vote: I like it +46 Vote: I do not like it

Yet another Serbian round?

orz

»
2 years ago, hide # |
 
Vote: I like it +5 Vote: I do not like it

Hope I can reach the specialist again in this round.

»
2 years ago, hide # |
 
Vote: I like it +31 Vote: I do not like it

THE BESTEST IN THE WORLD EVER 100% SERBIAN ROUND

»
2 years ago, hide # |
 
Vote: I like it +4 Vote: I do not like it

Back to back div2s every day let's go

»
2 years ago, hide # |
 
Vote: I like it +8 Vote: I do not like it

As a tester, the problems are exciting!

»
2 years ago, hide # |
 
Vote: I like it -59 Vote: I do not like it

It is the first time for that guy to prepare a contest, I am a little worried ...

»
2 years ago, hide # |
 
Vote: I like it +9 Vote: I do not like it

Good luck for everyone! ;)

»
2 years ago, hide # |
 
Vote: I like it +57 Vote: I do not like it

As a tester, NemanjaSo2005 Riblji_Keksic orz for preparing amazing problemset!

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

I love this contest marathon we've ended up having! ;)

»
2 years ago, hide # |
 
Vote: I like it +7 Vote: I do not like it

3 rounds in 3 days wrooom!!!

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Another serb round???

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Good luck everyone ^_^

»
2 years ago, hide # |
 
Vote: I like it +29 Vote: I do not like it

A 911 contest on 26/11 ? The numbers are too heavy to be considered a coincidence

»
2 years ago, hide # |
 
Vote: I like it +7 Vote: I do not like it
Division 1 participants can participate :
»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Hoping to reach pupil today

»
2 years ago, hide # |
 
Vote: I like it +6 Vote: I do not like it

30000 score problem, nice!

»
2 years ago, hide # |
 
Vote: I like it +3 Vote: I do not like it

am i seeing it correctly, or the score distribution for problem F really is 30,000(bang).

»
2 years ago, hide # |
 
Vote: I like it +17 Vote: I do not like it

NemanjaSo2005 best problem setter!!

»
2 years ago, hide # |
 
Vote: I like it -7 Vote: I do not like it

Fun fact : $$$\text{E + F} \gt \text{A + B + C + D}$$$.

»
2 years ago, hide # |
 
Vote: I like it -18 Vote: I do not like it

Can someone tell me whats the job of testers, if you need to correct the problem statement, text case explanation by a big margin in contest time? This is disgusting.

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    We made just small changes to make problem more understandable. If you knew what problem A was originally you would understand what testers are for.

»
2 years ago, hide # |
 
Vote: I like it +11 Vote: I do not like it

Keksic left on seen ......

Me: Us bro us

»
2 years ago, hide # |
 
Vote: I like it -11 Vote: I do not like it

If I knew more algorithms/ theory about Number theory could have got D, the main idea is so obvious

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it +20 Vote: I do not like it

    In which way exactly it is obvious for you if you do not know the theory? Can you please explain the "obvious main idea?"

    • »
      »
      »
      2 years ago, hide # ^ |
       
      Vote: I like it -10 Vote: I do not like it

      GCD convolution. A similar problem was asked a few time ago: https://mirror.codeforces.com/contest/1884/problem/D

      • »
        »
        »
        »
        2 years ago, hide # ^ |
         
        Vote: I like it +18 Vote: I do not like it

        Sure, the trick involved is similar. Note that the problem (and solution) isn't similar, you can't call two problems using same trick or algorithm or data structure similar. (By the same logic, every binary search problem is simillr?) Also note that problem doesn't require you to brainlessly find number of pairs having GCD equal to i, also maybe look up the author solution and see that it's different as well (but yes, problem can be reduced to 1884D trick, that's how I solved it during testing, still that knowledge only helped me to know how to find number of pairs with fixed gcd, not to solve the problem.)

        In sfarsit, vreau sa spun ca Nila Ucsepop m-a dezamagit cu faptul ca nu a luat aur la Stelele Matematicii.

»
2 years ago, hide # |
 
Vote: I like it +6 Vote: I do not like it

queueueuueueueueueueforces

»
2 years ago, hide # |
 
Vote: I like it +3 Vote: I do not like it

SpeedForces

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

QUEUE!!! ANY TIME EXTENDED?

»
2 years ago, hide # |
 
Vote: I like it +7 Vote: I do not like it

I will keep trying to solve div2 problems :) I hope one day I will overcome the obstacles

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Problem B is a nice application of the classical puzzle:

A shop sells 1 chocolate at $1. you can exchange 3 wrappers for 1 chocolate. if you have $15, how many chocolates can you get?

Problem C is a gentle introduction to Tree DP (although arguably you could remove the DP array and deal directly with DFS return value instead).

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    How is b related to that puzzle?

    • »
      »
      »
      2 years ago, hide # ^ |
      Rev. 2  
      Vote: I like it 0 Vote: I do not like it

      If you have $$$(x, \ y, \ target)$$$, assuming $$$x \leq y$$$, then you could first convert it to $$$(0, \ y - x, \ target + x)$$$. Then, for each $$$(y - x)/2$$$ chocolate of the middle kind, you utilize one chocolate from the end to convert it to $$$(1, \ y - x - 1, \ target + x - 1)$$$.

      Hence, we need at least $$$(y - x)/2$$$ chocolates of the third kind for this to be possible.

      The catch (in this problem, as well as in the puzzle) is that you don't have to directly check $$$(y - x)/2 \gt target + x$$$, since chocolates/wrappers are generated on the fly, so you could utilize the generated ones as well.

      Submission

      • »
        »
        »
        »
        2 years ago, hide # ^ |
         
        Vote: I like it 0 Vote: I do not like it

        For this question it is always possible if the other 2 have the same parity. The logic for that is you can keep going back and forth until the other 2 are the same value.

»
2 years ago, hide # |
 
Vote: I like it +11 Vote: I do not like it

D is too hard for me :(

»
2 years ago, hide # |
 
Vote: I like it +4 Vote: I do not like it

This is almost the same as B

»
2 years ago, hide # |
 
Vote: I like it +2 Vote: I do not like it

How to solve D?

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Why my this solution for problem C is giving TLE — https://ideone.com/uV3iX5

can someone pls help

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it +10 Vote: I do not like it

    Per-leaf approaches can die vs. trees shaped like long-handled brooms. Your early-out will only work if the earlier answers are better than the ones that come afterwards. Otherwise, it's possible to get stuck traversing the treetrunk/broomhandle repeatedly as you improve your overall answer for each leaf.

    To avoid this, you can use the return/post portion of a dfs, or you can do a full topological sort. Basically you want to avoid repeatedly processing vertices, but you also want to make sure a vertex is processed after all of its children.

»
2 years ago, hide # |
 
Vote: I like it +3 Vote: I do not like it

How to solve D?

»
2 years ago, hide # |
 
Vote: I like it +8 Vote: I do not like it

i liked problem C and was very satisfied by solving it.

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

How to solve B?

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Could someone please tell why I'm getting TLE? 234480936

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Isn't my solution at most works in O(2 * (10 ^ 7))? Shouldn't it fit in the time limit?

    • »
      »
      »
      2 years ago, hide # ^ |
      Rev. 2  
      Vote: I like it 0 Vote: I do not like it

      Seems like the solution is OK, but implementation is brr...Maybe i am not correct, but "vector < vector <vector < int > > >b(100001);", " while (pow(j, 2) <= a[i])" can make your program slow.

»
2 years ago, hide # |
 
Vote: I like it +4 Vote: I do not like it

I wonder what is the solution for D... There are a couple of thoughts on factorization, but nothing seems to fit in time limits.

»
2 years ago, hide # |
 
Vote: I like it +6 Vote: I do not like it

B > C ;)

»
2 years ago, hide # |
 
Vote: I like it +27 Vote: I do not like it

not saying it was a bad contest at all, but problem D was very similar to problem 645F(https://mirror.codeforces.com/contest/645/problem/F) such that it was the case of k=2 for that problem.

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it +1 Vote: I do not like it

    I just read it and it doesn't seem in any way similar, unless I don't know actual solution. However, i don't think that comparing the trick used in solution/solution itself is best way to describe similarity of two problems.

    Still, I may miss something, so could you please elaborate about what exactly they're similar in? =)

    • »
      »
      »
      2 years ago, hide # ^ |
       
      Vote: I like it +26 Vote: I do not like it

      say you have the solution of the problem for k=2.

      you can solve D like this:

      n=1 q=n-1, k=2 sort the array and give the elements of it in each query. the sum of all querys except the last one is the answer.

      • »
        »
        »
        »
        2 years ago, hide # ^ |
         
        Vote: I like it 0 Vote: I do not like it

        Hm, right, it makes sense. Though i still don't agree that "solution to this problem can also solve this problem" makes those two similar (sometimes it can, but here it's not the case, since problems ask for different things (I mean, 645F should be heavily simplifies to arrive to today's D, like, limit K to 2, sort array, do queries adding sorted array elements ...))

»
2 years ago, hide # |
 
Vote: I like it +17 Vote: I do not like it

Cool problems, Thanks!!

»
2 years ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

Is answer in D smaller than long long max?

»
2 years ago, hide # |
 
Vote: I like it +24 Vote: I do not like it

Is $$$E$$$ following? Build condensation of graph (find strongly connected components and make them 1 vertice, the graph becomes acyclic). And then just dp on DAG to find path with greatest number of vertices (sum not the vertices in condensation, but for each vertice in condensation number of original vertices in it). (Why do we have to minimize some cost then? It doesn't change the problem)

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it +8 Vote: I do not like it

    I thought of this too. There can be multiple longest paths in a DAG

  • »
    »
    2 years ago, hide # ^ |
    Rev. 3  
    Vote: I like it 0 Vote: I do not like it

    This method is correct, at least I have temporarily passed it

    1->2 1->3 2->4 3->4 There are two logest paths in a DAG 1->2->4 and 1->3->4

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it +13 Vote: I do not like it

    The graph may not necessarily be connected, therefore there might be multiple paths with the same longest length but different weights.

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Yes. Then you can store dp as pair {length, sum} and update it as the statement requires it.

    Кстати, стоимость просят минимизировать т.к. у тебя может быть более одного множества вершин формирующих путь максимальной длины и соответственно на этом и строится задача, хотя ограничение довольно искусственное, но без него задача была бы слишком стандартной наверное)

»
2 years ago, hide # |
 
Vote: I like it +21 Vote: I do not like it

Any hints for F?

  • »
    »
    2 years ago, hide # ^ |
    Rev. 2  
    Vote: I like it +22 Vote: I do not like it

    i think its something along the lines of:

    • figuring out that at most O(logn) operations will be done on an array A
    • do the operations on the whole array and memorize the array after every query, lets call A_k array A after k operations
    • to solve queries [L,R], if you consider just the elements of A_1 in [L,R], lets call the array of those elements B, you can see at most 2 elements(one from the front and one from the back) should be added to B
    • then you can just simulate the queries(smartly) only looking at the left and right boundaries and maintaining the left and right boundary in A_k that corresponds to the array that is left after simulating k operations on the array in interval [L,R] in A

    UPD: you will also have to add O(logn) elements to the front and the back of the array that you are maintaining in the query while simulating the operations(because some elements from the begining and the end of your query interval could have been deleted by the rest of your array)

»
2 years ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

Is D mobius?

»
2 years ago, hide # |
 
Vote: I like it +61 Vote: I do not like it

I'm willing to bet money that problem A was inspired by Minecraft.

»
2 years ago, hide # |
 
Vote: I like it +41 Vote: I do not like it

Minecraft water logic in A, nice

»
2 years ago, hide # |
Rev. 2  
Vote: I like it +8 Vote: I do not like it

I enjoyed thinking about problems ABCD,Thanks you for the contest. by the way any hints for optimizing (n ^ 2) solution of problem D

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Please tell me what topics I need to solve problems like D and E (also to become expert: in general) thankyou so much :3

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it +5 Vote: I do not like it

    problem D was a combination of number theory(gcd), combinatorics and inclusion-exclusion principle

    problem E was a combination of graph theory(for SCC compression) and simple DP on DAG(to calculate maximum length of a path and its smallest value)

»
2 years ago, hide # |
 
Vote: I like it +3 Vote: I do not like it

Was too rusty on my Möbius reduction to solve D in time sadly :c. ABC were good, as well as E, which wasn't straight up untouchable while still proving hard!

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Did you end up solving it using mobius?

    • »
      »
      »
      2 years ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      what is mobius?

    • »
      »
      »
      2 years ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      In the end no, but it simplifies down to calculating this: (then subtract a thing, divide by 2 and multiply by $$$n$$$, more or less)

      $$$\Sigma^n_{i=1} \Sigma^n_{j=1} \gcd(a_i, a_j)$$$

      Which should be very similar to the last example in this blog post, but for gcd instead of lca. I couldn't wrap my head around those last transitions though.

      • »
        »
        »
        »
        2 years ago, hide # ^ |
         
        Vote: I like it 0 Vote: I do not like it

        can you explain more please i did get to o(n ^ 2) solution but i can't understand how can i optimize it using mobius

        • »
          »
          »
          »
          »
          2 years ago, hide # ^ |
           
          Vote: I like it 0 Vote: I do not like it

          I doubt I can really explain it better than the blog post I linked. There is this function $$$\mu$$$ which is multiplicative and you can use the linear sieve to calculate its values quickly, and it has this interesting property which... yeah I'll just refer to the blog post.

      • »
        »
        »
        »
        2 years ago, hide # ^ |
         
        Vote: I like it 0 Vote: I do not like it

        There is (n-j) term here i think for instead of multiplying by n

        • »
          »
          »
          »
          »
          2 years ago, hide # ^ |
           
          Vote: I like it 0 Vote: I do not like it

          The first thing is you sort the array in descending order. Then if I'm not mistaken: \begin{equation} \Sigma^n_{i=1} \Sigma^n_{j=i+1} \Sigma^n_{k=j+1} f(a_i,a_j,a_k) \end{equation} \begin{equation} = \Sigma^n_{i=1} \Sigma^n_{j=i+1} \Sigma^n_{k=j+1} \gcd(a_j,a_k) \end{equation} \begin{equation} = n \cdot \Sigma^n_{j=2} \Sigma^n_{k=j+1} \gcd(a_i, a_j) \end{equation} \begin{equation} = n \cdot \frac{\Sigma^n_{j=2} \Sigma^n_{k=2} \gcd(a_i, a_j) — \Sigma^n_{i=2} \gcd(a_i,a_i)}{2} \end{equation}

          Sike, I am mistaken. You are right, line two $$$\ne$$$ line three.

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Do you really need that for D?

»
2 years ago, hide # |
 
Vote: I like it +12 Vote: I do not like it

Problem A is basically minecraft infinite water source.

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

please quickly upload the editorial, so that I can understand problem D

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

D is very interestring problem... i like it

»
2 years ago, hide # |
 
Vote: I like it +4 Vote: I do not like it

freaking hard D

  • »
    »
    2 years ago, hide # ^ |
    Rev. 2  
    Vote: I like it 0 Vote: I do not like it

    Problem D is pretty like to this 1884D - Counting Rhyme problem. There we should use a trick with inclusion-exclusion in dp for calculating all pairs of integers, that have fixed gcd. But these two problems are different from classical problem and we should modificate this dp.

    • »
      »
      »
      2 years ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      The inclusion-exclusion principle is relatively hard for D. It took me roughly an 1.5 hour to come up with it because I forgot this idea.

      • »
        »
        »
        »
        2 years ago, hide # ^ |
        Rev. 2  
        Vote: I like it +5 Vote: I do not like it

        Unluck :(

        I was stucked on problem B :)))))))

        May be you didn't solve too many problems with different tricks(I automatically recognized this trick when I have seen the problem)

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

In problem C, why my code is TLE when I use dfs by recursion, and I AC when I use dfs by Stack ?

Code TLE: https://mirror.codeforces.com/contest/1900/submission/234465423

Code AC: https://mirror.codeforces.com/contest/1900/submission/234469294

Besides: My other Code use O(nlog(n)) but it's TLE : https://mirror.codeforces.com/contest/1900/submission/234458841

»
2 years ago, hide # |
 
Vote: I like it +5 Vote: I do not like it

Feedback: In my opinion, B and C were a little too easy, and D was a little too hard. Maybe not, but the jump in difficulty from C to D was really huge for sure. Either: 1) make B,C harder or 2) make D easier (or a little bit of both). Other than that, that was a great contest, especially given that it's your guys' first time setting, good job!

»
2 years ago, hide # |
Rev. 3  
Vote: I like it +7 Vote: I do not like it

Thanks for the authors for this round ! Here is my advice about the problems (uncorrelated to my performance)

A
B
C
D
E

Congratulation to the authors though, the problems were still of good quality and I appreciate the fact that AB were not left behind !!

Looking forward to another round of yours :))

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Can you please explain your solution to D or maybe add comments in your code?

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    can you tell me why this solution won't work:

    https://mirror.codeforces.com/contest/1900/submission/234481346

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Expain your DP on D

    • »
      »
      »
      2 years ago, hide # ^ |
      Rev. 6  
      Vote: I like it +5 Vote: I do not like it

      First I considered the easier problem of finding the sum of $$$gcd(a_i,a_j)$$$.

      Let $$$dp[d]$$$ be the number of pairs having their gcd equals to $$$d$$$. Once you know all rhe $$$dp[d]$$$, the answer is just $$$\displaystyle\sum_d dp[d] \cdot d$$$.

      Let $$$M$$$ be the maximal value of $$$a_i$$$ (here $$$M = 10^5$$$). Notice $$$dp[M]$$$ is the number of pairs of elements that are divisible by $$$M$$$.

      Let's compute $$$dp[d]$$$ Assume $$$dp[k]$$$ is known for all $$$k \gt d$$$. We know $$$dp[d]$$$ is at most the number of pairs of elements that are both divisible by $$$d$$$. However, among these pairs, we need to remove the ones whose gcd is not $$$d$$$. Such pairs will have gcd $$$2 \cdot d$$$ or $$$3 \cdot d$$$ etc.

      You can use the exact same approach to solve the problem (except you are counting triplets so you should sort the array first to know how many elements are larger)

      Code 234513315

      • »
        »
        »
        »
        2 years ago, hide # ^ |
         
        Vote: I like it 0 Vote: I do not like it

        Thank you, I'll study this method.

        My solution during round was working with complexity $$$O(M \cdot uv)$$$ where $$$u$$$ is $$$M^{\frac{1}{3}}$$$ and $$$v$$$ unknown for me, but it gladly AC.

        Your solution is working $$$O(M \cdot M^{\frac{1}{3}})$$$ I guess.

»
2 years ago, hide # |
 
Vote: I like it +7 Vote: I do not like it
»
2 years ago, hide # |
 
Vote: I like it +2 Vote: I do not like it

Solving Backwards D-C-B-A, hope I will reach CM one day, By the way very nice problem D, and glad that I solved it in the contest itself.

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Can you please explain your approach for Problem D?

    • »
      »
      »
      2 years ago, hide # ^ |
       
      Vote: I like it +3 Vote: I do not like it

      Sort the array,

      Now for every element ai push the index i in map of the factors of ai. After completing this step for all elements, for each key in map you will get the indexes where the elements present are divisible by this particular key.

      Now gcd will be some number inside our keys in map.

      Iterate from highest keys to lowest keys , as answer for any key will also depend upon the answer for multiples of that key.

      => Remember map[i][j] represents and index b/w 0-n , such that element at that index is divisible by i, formally a[map[i][j]]%i=0

      Particularly, dp[i] += i*j*(n-map[i][j]-1)

      (because for jth element in map[i], you can select any 1 element from 0 to j-1 , jth element and any 1 among n-1-map[i][j], as these 3 numbers will give you a valid tuples (ap1,ap2,ap3) whose gcd = gcd(ap1,ap2) = i.

      Also you have to subtract the contribution of multiples of i, as if i divides 2 numbers then it doesn't necessarily mean i will be the gcd of these 2 numbers.

      Hence, dp[i] -= dp[i*j]/j for all j

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Shouldn't have solved backwards, you're sacrificing a lot of free delta from A and B

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Can someone who was able to solve E can explain why this won't work for E, or report any points i missed:

code
  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    You need to consider strongly connected components. Currently you are running a dp on a graph that has cycles (well sometimes you can use dp even when you have cycles)...

    If you are still not convinced, try thinking about why you think your solution is correct

»
2 years ago, hide # |
 
Vote: I like it +2 Vote: I do not like it

For problem D,any particular reason we are not required to output the answer mod some prime. In the current form, the maximal answer can $$$nC3*max(a[i])$$$ which if not calculated carefully (finding the ncr part and then multiplying) can overflow.

»
2 years ago, hide # |
 
Vote: I like it +8 Vote: I do not like it

I feel like problems today were more educational than usually, you just should know the main approach for problems like these and then they're easy, otherwise really hard to come up with

»
2 years ago, hide # |
 
Vote: I like it +15 Vote: I do not like it

Nice contest. Problems were well designed and fun to solve. Thanks for the round NemanjaSo2005 Riblji_Keksic and all testers.

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Yo it was a great contest!

»
2 years ago, hide # |
 
Vote: I like it -15 Vote: I do not like it

There was a long queue in last 10-15 minutes. Then still it's considered as rated round. Disappointed :(

»
2 years ago, hide # |
Rev. 3  
Vote: I like it 0 Vote: I do not like it

good contest

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Please tell me how you think about problem D and what is the breakthrough point?

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    +1

    How to improve number theory with dp?

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    I didn't know how to solve it with dp, but I passed it during contest.

    Idea is following:

    let $$$x$$$ be divisor of $$$a[i]$$$ ($$$a[i] \mod{x} = 0$$$). Let's $$$q[v]$$$ is the number of such $$$a[j] (j \lt i)$$$ that $$$v$$$ is divisor of $$$a[j]$$$. Let's iterate over all divisors $$$x$$$ of $$$a[i]$$$ and sum over $$$q[x]$$$ is the answer.

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it
»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

How did people_plus_plus solve a problem in 1 second???

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Can someone Please explain why I am getting a TLE in this solution for problem C 234510811

»
2 years ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

I got message from the system that my solution of C is same as other coder. my code: https://mirror.codeforces.com/contest/1900/submission/234467535 other's code: https://mirror.codeforces.com/contest/1900/submission/234459009

i didnt copied anyone's code, the solution is very straightforward. Easy codes can look similar. Please remove this penalty

»
2 years ago, hide # |
Rev. 2  
Vote: I like it +1 Vote: I do not like it

I got a message from the system that my solution of C coincides with another code:

my solution: https://mirror.codeforces.com/contest/1900/submission/234456967

other code: https://mirror.codeforces.com/contest/1900/submission/234468345

Just see the difference between the coding style between those two codes.

I have no idea how did this happen. I wrote a very simple solution just using BFS. i think it is normal that easy codes look similar to each other.

Please reconsider this and remove my penalty.

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Hey @MikeMirzayanov i have received this System mail yesterday

Attention! Your solution 234440272 for the problem 1900C significantly coincides with solutions KatsuKimechi/234437376, anikethend1234/234440272. Such a coincidence is a clear rules violation. Note that unintentional leakage is also a violation. For example, do not use ideone.com with the default settings (public access to your code). If you have conclusive evidence that a coincidence has occurred due to the use of a common source published before the competition, write a comment to post about the round with all the details. More information can be found at http://mirror.codeforces.com/blog/entry/8790. Such violation of the rules may be the reason for blocking your account or other penalties. In case of repeated violations, your account may be blocked.

I know violation of rules of contest is not good. But i fact i have not done any kind of such thing.But yesterday i notice that the guy you talking about had used my CP template and code before this contest also. He used my CP template i the same contest also(you can check my previously solved solutions for reference).I think I have not done any kind of voilation of rules. Please check into the matter once.

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Does anyone have any idea why this dfs fails pretest 6?

Please refer to the solve() function. https://mirror.codeforces.com/contest/1900/submission/238214972

»
2 years ago, hide # |
Rev. 4  
Vote: I like it 0 Vote: I do not like it

For C what is worong ``` ll ans = 1e8, n;string s; ll l[maxn], r[maxn];

void dfs(ll v, ll op = 0){ if (l[v] == -1 && r[v] == -1) ans = min(ans, op); if (l[v] != -1) dfs(l[v], op + (s[v] != 'L')); if (r[v] != -1) dfs(r[v], op + (s[v] != 'R')); }

void run(){ cin >> n >> s; for (int i = 0 ; i < n ; i ++){ cin >> l[i] >> r[i]; l[i]--;r[i]--; } dfs(0); cout << ans << nl; }

```