pl_24's blog

By pl_24, history, 7 years ago, In English

Problem My Solution can some one please tell me why my solution gives WA even this method is a kind of brute force one still gives WA. ??

Thanks in advance..!!

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

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

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

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

Your solution gives WA because of precision issue.Since the range is quite small [0,1], "double" data type is not able to handle that much of precision.If you change your variable to "long double", then you will get a different answer, but unfortunately, that would also not be able to handle that much of precision. So try another approach to solve this problem.

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

    The range being small is not the problem, it could be [ - 1018, 1018] and this approach would still not work. The real issue is that you might have to divide your range by 2 up to 106 times, so you'd need a variable storing around 106 bits to be able to compare correctly all the numbers you get.