ATM question ,my code runs in GCC 4.6.0 complier but codechef doesnt

#include
using namespace std;
void call(float);
int main()
{
int i;float a,b;
cin>>i>>a;
if(a<=2000)
{
if((a-i)<0)
{
call(a);

}
else{
cout<<(a-i-0.50);
     }

}
//getch();
return 0;

}
void call(float a)
{
cout<<a;
}

change ur if condition from (a-i) to (a-i-0.5)>0…because there might be a case where a<i+0.50…then that would be considered as insufficient funds.