 # What is wrong with my code for long challenge problem Appy and Balloons?

My above solution is running for some cases i.e., it was partially accepted , I made a small change in the code in Line 54:
temp+=(Math.ceil( ((float) (C[i]-mid))/(float)B[i]));

changed to

temp=temp-(mid/B[i])+A[i];

After doing this I got AC for all cases

Please can anyone tell me why is this happening

In C/C++ , ceil() uses “double” type as its argument and returns “double” as well.Here, the value which is the argument of ceil() (c[i]-mid) can be as large as 10^18 which exceeds the range of “double”. Hence,ceil() returns unexpected value and you got WA for large numbers (The case is same in Java)

1 Like

I tried it for 10^18 in c++ it’s returning
1e+09 when i use ceil
and 1000000000 when i am using other approach

Anyway,

``````#include <bits/stdc++.h>
using namespace std;

int main()

{

long double c=1000000000000000000.76;

cout << ceil(c) <<endl;

}
``````

This won’t output 1000000000000000001. Instead will output 1000000000000000000 (1e+18)

PS: Don’t trust floating point numbers. They can’t be stored/represented accurately and they betray when you need them the most 1 Like