Kmare's blog

By Kmare, history, 3 years ago, In English

I was solving "Digit sum" problem of Atcoder DP contest. I am just curious why my two solutions have such a vast difference in their execution time.

My First solution which took more than 2000ms (https://atcoder.jp/contests/dp/submissions/24396061)

My Second solution which took less than 200ms (used global variables) (https://atcoder.jp/contests/dp/submissions/24396078)

Just adding some more parameters to a function completely changed the time complexity, strange isn't it?

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

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

Auto comment: topic has been updated by Kmare (previous revision, new revision, compare).

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

Cause you're not passing the string by reference in the first solution. In state function, change "string s" to "string& s" and you'll see a similar execution time

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

Everytime a new copy of the string gets created since you pass by value, do pass by reference, I think it will run in similar time.