iron_nicko's blog

By iron_nicko, history, 17 months ago, In English

214876910

This is just unfair that my PyPy submission got TLE! Can this be reviewed?

  • Vote: I like it
  • -27
  • Vote: I do not like it

| Write comment?
»
17 months ago, # |
  Vote: I like it +24 Vote: I do not like it

skill issue

»
17 months ago, # |
  Vote: I like it 0 Vote: I do not like it

because python is slow. I also got TLE on test 42 214898344, and the C++ code is Accepted 215049350

»
17 months ago, # |
  Vote: I like it +16 Vote: I do not like it

Its not an issue related to python slowness, but its related to hash collisions being o(n^2)

sort the array before you use counter and it should pass.

https://mirror.codeforces.com/contest/1850/submission/215081606 Passes in 200 ms

  • »
    »
    17 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    nice, new knowledge, thank you

  • »
    »
    17 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    WOW! it worked! can you please give a brief explanation on why this is the case? How does sorting the array decrease hash collisions? very counter intuitive !

    I tried the same for G as i also used a dictionaries there. it passed test case 14 but unfortunately it still got TLE on test 17. Is there anything i could do with that? Problem G submission

    • »
      »
      »
      17 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it
      1. try random.shuffle on points instead of sorted
      2. make main function
      3. dont loop so many times, when you count u can do it in one for loop
  • »
    »
    17 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    can u explain why sorting the list reduced the runtime?

    • »
      »
      »
      17 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      People have designed the testcase to cause hash collision resulting in n^2. If you sort the array you get rid of the hash collision as elements are inserted in a different order, resulting in o(n)