Guys please share your approaches for the problems you solved. How many did you guys solve?

# | User | Rating |
---|---|---|

1 | tourist | 3797 |

2 | Benq | 3618 |

3 | Radewoosh | 3525 |

4 | Miracle03 | 3460 |

5 | ecnerwala | 3419 |

6 | Petr | 3408 |

7 | peehs_moorhsum | 3384 |

8 | ksun48 | 3377 |

9 | ko_osaga | 3352 |

10 | maroonrk | 3344 |

# | User | Contrib. |
---|---|---|

1 | YouKn0wWho | 214 |

2 | 1-gon | 205 |

3 | Um_nik | 196 |

4 | Errichto | 182 |

5 | awoo | 179 |

6 | sus | 177 |

7 | tourist | 176 |

8 | antontrygubO_o | 172 |

9 | -is-this-fft- | 170 |

10 | SecondThread | 167 |

Guys please share your approaches for the problems you solved. How many did you guys solve?

↑

↓

Codeforces (c) Copyright 2010-2021 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Nov/29/2021 06:38:17 (h3).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|

Can anyone share the problems?

q1q2q3q4q5q6I solved first with Sliding window Maintaining a hashmap of size two for tracking Frequency and checking for additional N/3 minimum Frequency requirement ,

I guess it can be solved by simply checking all substrings of size 3.

Yes even i did this one in question DP Integers some test cases were changed after sometime

It can be solved by checking every substring of length 3 only also, no need to use sliding window.

Now, question arises why only length 3 , it can be more than that , right?

So, here is the answer ....

Spoilersuppose if length is greater than 3 then also one can verify that it will contains a golden string of length 3 in it. Try dry running the algorithm.

what about abca , you have to check substring of size 5.

means if there exists two indices(i,j) such that s[i]=s[j] and abs(i-j)<=4 then answer is true(if string size is greater than 3) else answer is false.

NO. abca has 3 different characters in every window so no golden string.

oh yes i forgot this condition.

There is a condition that golden string should contains exactly 2 distinct characters. So, checking only substrings of length 3 will work

It could be also proved by let's say there exists a golden string of length>4 that is golden than it will surely contain {i,i+1} such that si != si+1

and therfore{i-1,i+1} or {i,i+2} substring will also be golden whichever exists.

Can you share your code?

Hashmap is not needed simply take two int variables for maintaining frequency.

Can you suggest how to solve "Swap it Harder"

For 2nd question:-

Question no.2 was actually easier than expected. You just had to try out a few inputs first and find its output through the given tool. My solution is a bit unorthodox. The cost followed a pattern. 1. The first three conditions checked if both inputs are zero(op=0) / one of them is one(op=3). 2. Then made a while loop with the condition as min(A, B)>=(2**i). 'i' will be incremented by one every time, starting with i=1. 3. Final output will be cost=i+2

How to approach the problem with the rocket jumping in powers of two? I tried simulating it with bruteforce but always WA

In that you could easily compute xj array and let dp[i] be the answer for musk rocket to come at i hence the problem reduced to for each i given k disjoint intervals [l_i,r_i] and value of k would be atmost 20(actually less than that too) and if we are at i then just update all the intervals that could be done by segment tree or fenwick tree but could also be done by some ranged update in a query (like updating for [l_i,r_i] by adding dp[i] to it ->dp[l_i]+=dp[i] and dp[r_i+1]-=dp[i] then if we are at i then we no the answer available at i by just summing over values before that or just adding the initials.

Yeah thats pretty obvious and this is what I was doing but my answer was wrong from n >= 6. Maybe I had implementation issues.

As the range update queries will always be to the right of the current index i, we can use a difference array and keep taking its prefix sum while traversing from left to right. The implementation will be much shorter and easier.

Can you please tell, how did you get to know about contest and where was link given?

Interviewbit

`To solve DP integers`

: I just applied dp with recursion:f(a, b) = min{

if (a == 0 and b == 0) return 0;

if (a != b) return f(sqrt(a*b), sqrt(a*b) + 2;

if (a > 0) return f(a/2, b) + 1;

if (b > 0) return f(a, b/2) + 1;

}

`To solve Two summations: Used greedy: sorting`

.Observation: a_i + b_j dominates b_i + a_j when a_i + b_j > b_i + a_j

Rearrange the equation and apply sort function.

a_i — b_i > a_j — b_j

After sorting, calculate the contribution of each number, since i < j and j will dominate i.

What's the time complexity of dp Integers solution? Also, I don't understand the Two Summations, can u help me with them?

So you are given two numbers. And to make them both zero you can either replace them with their product of square roots or divide any of them by 2. But if you observe that sqrt(a*b) >= min(a,b) so this doesn't help us to reach zero. So what I thought that first make the smaller one to zero with log(min(a,b))+1 operations (+1 to actually make to 0 from 1). So now we have {0, max(a,b)} as two numbers now the sq root of their product is 0 and it will cost '2' to make them all zero. And we have the answer. Ans= log(min(a,b)) + 1 + 2. BUT PLEASE CHECK FOR THE EDGE CASES.

Could you please explain TWO summation using code?

In DP Integers the test case was so weak that my code seemed to have passed just with a greedy solution

i.e check if A<B*100 apply

Step 1: else apply Step 2:

Where I can see scoreboard or standings ?

I solved 3. A lot of people whom I know solved 4 or more.

How to solve 3rd or 4th one ?? (whichever you solved :_:)

Anybody explain "Swap it Harder".

Can anyone share the approach for the last problem?

did you get 4th question ? I solved it in o(n*n) . Please share the approach! Thanks in advance

I also managed to solve it in O(n ^ 2) only! But someone already posted the approach can u check here for the solution

My friend has received an email stating the test cases of DP integers have changed,before for 0 0,output was given as 2 and I think everyone wrote the solution accordingly,but then after the contest I came to know that it was changed,is there anyone with the same scenario ?

yes, even I got 2 for 0 0 input.

Can we view the questions after the contest is over in Interviewbit?

I tried but it wasn't available

They later on updated the value for 0,0 to 0 ,

Solution to the first problemI am simply having a window where atmost 2 diff characters can come and then I check for conditons of golden string. Incase of it consist of more than 2 char ,I am contracting my window by incrementing left index and for expanding I am incrementing right index .

This contest was a crap. Wasted 4 hours

why tho? too easy for you?

Absolutely not. You know the test cases issue with the second problem. I still don't understand what we are supposed to do in the third problem. There was an option like see expected output for custom input, for third problem when I gave 9 9 1 as input the output was 1 but according to the sample test cases it should be 0. O(nlogn) doesn't pass for the fourth problem. I had to optimize it to O(n). For fifth problem, the problems statement is somewhat wrong.

What approach did you follow in 4th question?

I don't think we can view our solutions. I initially solved the problem using maps. After I got TLE, I used arrays instead of maps. Hashed negative values to positive indices by adding -min.

Could you please share your approaches and codes for 4th question?

I coded 4th in nlogn and it passed.

Maybe my O(nlogn) implementation was a mess.

can you please share the solution?

I calculated number of times a

_{i}and b_{i}will occur in the answer. Just multiplied the count obtained with a_{i}and b_{i}to get the final answer (Contribution technique).Now, for a

_{i}to appear in the summation this condition must be true :a

_{i}+ b_{j}>= a_{j}+ b_{i}=> a

_{i}-b_{i}>= a_{j}-b_{j}Make a vector of a

_{i}-b_{i}values and then sort it. Use binary search to count the occurences with the above condition (for count of b_{i}inequality will be reversed).I figured out this during the contest but couldn't code it up :<( .

metoo

can you send the code of 4th quesiton? So that i can see what is the approach of the quesion...

Could you please tell what part was wrong in Problem Statement of 5th Problem?

Setter solution didn't ignore double counting.

For eg. xj[i] = 3;

then possible lengths of jumps are [2^0,2^1] union [2^1,2^2]

so,

{1,2} union {2,3,4} = {1,2,3,4}

but setter solution has taken it as {1,2,2,3,4}

Okay cool got it. Thanks!

I had solved first, second and fourth partial. For the first I had just checked if string length is greater than 3 and if s(I) == S(I+1) or S(I) ==S(I+2).

For. The second I had separately handled four corner cases and for rest cases just found out operation required to turn minimum of two number to zero and add 2 to it

For fourth partial brute force

Can anyone suggest approach for two summation and swap it harder?

This is the solution for

Two SummationFirst, in these types of problems, you should try to simplify as much as possible. Let's go through the solution.

Part- IYou can take out $$$A[i] + B[j]$$$ from the max and the problem would reduce to finding sum of $$$A[i] + B[j]$$$ separately and sum of $$$max(0, A[j]+B[i] - A[i] - B[j])$$$

Part- IIYou can then calculate the first part by just observing that each number will appear in n pairs, so the sum would be $$$n \times (Sum(A[i]) + Sum(B[i]))$$$.

Part- IIIFor the other part, see that it can be re-written as $$$max(0, (A[j]-B[j]) - (A[i]-B[i]))$$$

Make an array Diff, such that $$$Diff[i] = A[i] - B[i]$$$, so again rewriting, you need to find summation over all pairs of values in Diff, $$$max(0, Diff[i] - Diff[j])$$$.

Now how to do this in better than $$$O(N^2)$$$?

OptimizationSee that since you need to sum it over all pairs, the order does not matter.

So you can sort the elements in Diff array. Also, observe that only those pairs will contribute where $$$Diff[i] > Diff[j]$$$, others will be $$$0$$$.

So for each index i (say 0-based), the answer will increase by

$$$(Diff[i]-Diff[0]) + (Diff[i] - Diff[1]) + ... + (Diff[i] - Diff[i-1])$$$

=> $$$i \times Diff[i] - (Diff[0] + Diff[1] + ... Diff[i-1]) = i \times Diff[i] - (Sum(Diff[j])$$$ upto $$$i-1)$$$

Now you just iterate over all indices, keep a sum-upto variable and add the above to the answer.

ExampleLet's try to understand this by an example. $$$Diff = [2, 4, 5, 7]$$$.

So the pairs that will be counted are:

$$$4 - 2 => 4 - (2)$$$

$$$(5 - 2) + (5 - 4) => 2*5 - (2+4)$$$

$$$(7 - 2) + (7 - 4) + (7 - 5) => 3*7 - (2+4+5)$$$

A Little More ObservationAll pairs are of the form $$$+Diff[i] - Diff[j]$$$.

Q: How many times, a certain index i, will be at '+' position?

A: $$$i$$$ times, as there are $$$i$$$ elements smaller than ith element (0-based).

Q: How many times, a certain index $$$i$$$, will be at '-' position?

A: $$$n-1-i$$$ times, as there are $$$n-1-i$$$ elements bigger than ith element (0-based).

Therefore, for each index $$$i$$$, add $$$i\times Diff[i] - (n-1-i)\times Diff[i] = Diff[i] * (2\times i - n + 1)$$$.

Final AnswerThis should be O(nlogn) as you have sorted the diff array.

Yeah, you are right, what I meant was how to do in $$$O(N)$$$ after sorting.

I'll change that. Thanks!

This leetcode problem is based on the similar profile. Even though, I have solved this problem, I couldn't get the 4th one in the contest =(

If someone has got similar problems, please do share.

x

I appreciate your effort but it is kind of unreadable.

y

I did with prefix sums but my approach is different and works in nlogn :)

Were the points displayed after submission? They weren't displayed for me when my solutions got fully accepted

Yes the points were not shown when the solution got fully accepted but for partially correct solution points were shown

crappiest contest wasted 4 hours solved first three only to learn test cases for problem 2 changed and for problem 3 test cases were super weak and wrong . no learning

Can anyone help with the logic of the shipment packaging question?

Does anyone know when will they release standings?

After the second version which is to be held on 23rd Oct . Your best of two scores will be considered in final standings.

Source :- LinkedIn

I have received one mail (some days back) regarding another contest of Codeagon on 17th October. But since then, I haven't received any further notifications. Has anyone else got it?

When we can expect results of codeagon 2021 ?

It's better to have no expectation from them :XD

Looks like they were not too much interested this year.In first contest test cases went wrong for second problem.

Shortlisting emails are getting released. Check your mailbox.