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
| # | User | Rating |
|---|---|---|
| 1 | Benq | 3676 |
| 2 | Kevin114514 | 3659 |
| 3 | jiangly | 3640 |
| 4 | turmax | 3450 |
| 5 | tourist | 3382 |
| 6 | strapple | 3360 |
| 7 | Um_nik | 3354 |
| 8 | squareOf105 | 3348 |
| 9 | maroonrk | 3312 |
| 10 | idontwannadothis…e | 3191 |
| # | User | Contrib. |
|---|---|---|
| 1 | Qingyu | 155 |
| 2 | nik_exists | 151 |
| 3 | maspy | 149 |
| 4 | AmShZ | 145 |
| 5 | Um_nik | 143 |
| 6 | Errichto | 139 |
| 7 | BledDest | 136 |
| 8 | adamant | 134 |
| 9 | maroonrk | 132 |
| 10 | cry | 130 |
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
| Name |
|---|



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) / nis 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,
__int128is also an option as well, you can have a look at it.