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..!!
# | User | Rating |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3823 |
3 | Benq | 3738 |
4 | Radewoosh | 3633 |
5 | jqdai0815 | 3620 |
6 | orzdevinwang | 3529 |
7 | ecnerwala | 3446 |
8 | Um_nik | 3396 |
9 | ksun48 | 3390 |
10 | gamegame | 3386 |
# | User | Contrib. |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 157 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
9 | nor | 153 |
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..!!
Name |
---|
Auto comment: topic has been updated by pl_24 (previous revision, new revision, compare).
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.
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.