ceil((double)x/n); x <= 10^12 and n <10^6; can anyone provide a test case or something I got hacked many times but was unable to find a mistake
№ | Пользователь | Рейтинг |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3839 |
3 | Radewoosh | 3646 |
4 | jqdai0815 | 3620 |
4 | Benq | 3620 |
6 | orzdevinwang | 3612 |
7 | Geothermal | 3569 |
8 | ecnerwala | 3494 |
9 | Um_nik | 3396 |
10 | gamegame | 3386 |
Страны | Города | Организации | Всё → |
№ | Пользователь | Вклад |
---|---|---|
1 | Um_nik | 164 |
2 | -is-this-fft- | 162 |
3 | maomao90 | 159 |
3 | atcoder_official | 159 |
5 | cry | 158 |
5 | awoo | 158 |
7 | adamant | 155 |
8 | nor | 154 |
9 | TheScrasse | 153 |
10 | Dominater069 | 152 |
ceil((double)x/n); x <= 10^12 and n <10^6; can anyone provide a test case or something I got hacked many times but was unable to find a mistake
Название |
---|
I can give you a reason why it can be wrong: because of how doubles are stored (IEEE 754), they might not be accurate, and that can lead to inaccurate result
if you want ceil, then use
(x + n - 1) / n
is there any test case to show this i am unable to find one
it fails for bigger number like if you try to do 100000000000000001/100000000000000000 it will give you 1 directly but ceil of this should be 2
but test case allow 10^12 for x and 10^6 for n
You can try stress-testing. I believe
ceil()
will cause precision error by nature, regardless of the constraints.but if we give by this method ie (x+n-1)/n then wont it lead to overflows due to addition?
yes
then how does N8LnR2Nqf8Q4FN says to give (x+n-1)/n and not
ceil(double(x)/n)
I don't think any problem setter would be that evil.
Also, if you are afraid of overflow, you can try
x / n + (x % n != 0)
, although it requires more divisions, which is slower and uglier (but I guess it's easier to understand).And,
__int128
is also an option as well, you can have a look at it.