hmehta's blog

By hmehta, history, 4 years ago, In English

Hey Everyone, Next week we are hosting SRM 800!

SRM 800 is not just any other SRM but a big milestone for the competitive programming community. We at Topcoder started SRMs back in 2001 to start a culture of fortnight rated contests and in these 20 years, Topcoder with the help of the community has successfully been able to organize 800 rounds.

This is a moment to cherish and celebrate all the contributions members have done over these years. It takes a lot to organise a round, from writers, testers, admins, editorialists, the product development team, to all the competitors who compete with all their passion and encouragement.

SRM 800 is taking place on February 13, 2021 and we are organizing a Virtual Party. Register Now! Join us as we celebrate this SRM milestone with a panel discussion with veterans including misof, Petr, neal_wu and tourist, a post-match analysis with our top problem writers, and some great informational sessions.

Exclusive SRM 800 T-shirt for:

  • 25 Top members from both divisions to get an exclusive SRM 800 T-shirt

  • 25 Top Newbies* other than the Top 25 from Div II

  • 25 Random Participants (other than the Top 25 from both divisions and 25 Newbies) 

  • Veteran Competitors** in Top 50 from both divisions earn an exclusive, vintage Topcoder t-shirt.

Cash prizes as follows:

Div I 

  • 1st place: $150

  • 2nd place:$100

  • 3rd place: $75

Div II

  • 1st place: $150

  • 2nd place:$100

  • 3rd place: $75

  • Top Scoring Newbie*: $100

*Cash and t-shirt prizes for newbies is valid only to Topcoder members who registered before 23:59 UTC-5 February 3, 2021 and have never participated in an SRM before.

**Veteran Competitors are those who last competed in a rated round before December 31, 2014.

Hope to see most of you compete and be a part of this milestone contest!

SRM 800 is scheduled to be held on Saturday, February 13 at 12:00 UTC -5. Registration is now open for the SRM in the Arena or Applet and closes at 11:55 UTC-5. The coding phase will start at 12:05 UTC-5, so make sure that you are all ready to go. Click here to what time it starts in your area

Best of luck!
- the Topcoder Team

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

| Write comment?
»
4 years ago, # |
  Vote: I like it +61 Vote: I do not like it

Veteran Competitors are those who last competed in a rated round before December 31, 2014.

Did you mean who first competed before that date?

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

    Hey! Veteran t-shirts are for those members who last competed in a rated round before the mentioned date and haven’t competed since then. We plan to give out these veteran t-shirts to regular competitors as well in upcoming rounds :)

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it +48 Vote: I do not like it

      Ok. Then I believe something is broken in detection of such members, because an email I got says "We noticed that you last competed in a Topcoder SRM before December 31, 2014", and it is definitely not correct.

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

I sincerely congratulate you on the 800th round! I wish you not to stop and celebrate the 1000th round soon. By the way, we could arrange a competition — where the 1000th round will take place for the first time: at Codeforces or at Topcoder.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +69 Vote: I do not like it

    Thanks MikeMirzayanov! Congratulations to the Community, Codeforces team and you as well on the 700th Round. Also, big thanks to you and CF team for the all what you guys have done for the competitive programming community.

    Definitely not stopping and we should certainly start planning something big for 1000th round on both the platforms. Maybe do something together for the community if the rounds are happening at the same time :)

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +60 Vote: I do not like it

    Rigged! CF has div2 only rounds too!

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

hey hmehta, just being curious, who is/are the authors of this round as it's not mentioned this time?

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

If I am a non-rated participant, what are my chances of winning a t-shirt?

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

hmehta is so Indian that he was smiling from start to end xD. BTW great session.

»
4 years ago, # |
  Vote: I like it +10 Vote: I do not like it
»
4 years ago, # |
Rev. 2   Vote: I like it +72 Vote: I do not like it

My 450 solution contains two lines of code with two lines of bug

int lastNumber(vector <int> A) {
  if( SIZE(A) % 2 == 1) return max(A[0],A[1]);
  return min(A[0],A[1]);
}

I know the solution is to check the last element, but for some reason I typed A[1]. Seems like I need to take a break from speed coding for a while. :'(

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

What is the proof for DIV1 400?

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

    Let's say n is odd which means there will be even moves which implies that 2nd player will make the last move. So intuitively we can tell that we can only maximise the last element left. Now let's move to the last second move

    We have 3 elements left

    a0 a1 a2

    Now let's say we want our answer to be the maximum element in array. We can clearly see that it should either be a0 or a2. So how can we make sure that it ends up at a0 or a2 Let's say the maximum element is in between somewhere in the array but not on the boundary element i.e a[0] or a[n-1]. So if we want to take it to the edge you can clearly see that we have to either delete all elements on the left of it or all elements on right of it and only player 1 can do it since only he wants to maximize the answer. But this isn't possible as this element is maximum and player 1 will always delete the maximum of the two elements. So we can't take the maximum number not on the boundary to the boundary. Therefore if we want any number to be the maximum answer it has to be on the edge of the array.


    But there is a small problem ( How to prove that the player 2 won't affect our answer i.e It won't delete this element from the array ?) Well if he deletes it he has to do it using a bigger element which will make that element the boundary element i.e increasing the previous answer which he doesn't want to do. Therefore he will never delete that boundary element.

    Therefore the maximum of the boundary elements is the answer in this case

    Similarly we can show for n=even that minimum of the boundary elements is the answer

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

    Well, my solution (that I finished writing just minutes after the end...) is that we can check if the answer has to be greater than $$$x$$$ for any $$$x$$$, so just increase $$$x$$$ and check that until you get a negative result of the check. Quite intuitive. On the other hand, we can do the same with "smaller than $$$x$$$" and I don't have proof that these are equal results.

    How do we check that? Let's replace elements by 0 ($$$\ge x$$$) and 1 ($$$\lt x$$$). Player 0 can only remove 0 from consecutive 1 and 0, player 1 can only remove 1; also, each player can remove from consecutive 00 or 11. The goal of player 0 is to be left with 0. Since player 0 doesn't want to remove the middle from 101 and player 1 doesn't want to remove the middle from 010, they'll reduce it to 0101...01, 010...10 or 101...01 and then remove consecutive 01-s for the same reason, ending up with 01, 0 or 1. In the first case, the final number left is given by which player is making the final move; the other two don't depend on it.

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

Hi hmehta, I saw the announcement in the platform about some submissions for 550 getting unexpected TLE. I think my submission may be one of them: the case in which I got time limit exceeded runs in 0.3 seconds in my notebook. It's weird.

I saw in the announcement that I should send an email to some account, but I'm not able to find that message again, so I'm reaching out to you. What can I do? Thanks :)

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

    Here is the message from the arena:

    message
»
4 years ago, # |
  Vote: I like it +22 Vote: I do not like it

Is there no editorial draft this time? or I missed the announcement in arena?

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

When you will announce for the 25 random participants that will win thsirt

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

How would we have solved div2 400 point problem if the reel length was large. I mean that we are simulating the process due to small reel length but what if reel length could also be huge like probably 1e5 or something. Sorry if its a dumb question but I couldn't exploit the small constraints during the round and kept solving for larger constraints :(

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

    I guess we can use Chinese remainder theorem.

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

      thanks for the reply. I don't know much about Chinese remainder theorem. I will check it out :)

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

Has anyone received their T-shirt?