Блог пользователя yashgulani

Автор yashgulani, история, 6 лет назад, По-английски

Why double coins = (double)(k+l)/m and then ceil(coins) works

And this one faila for case 28

ll long long int main() { ll n,m,k,l; cin>>n>>m>>k>>l;

ll coins = ceil((double)(k+l)/m);

if(k+l > n || coins*m > n)
{
    cout<<"-1"<<endl;
}
else {
    cout<<coins<<endl;
}
//main();

}

Thanks in advance

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
6 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Auto comment: topic has been updated by yashgulani (previous revision, new revision, compare).

»
6 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Auto comment: topic has been updated by yashgulani (previous revision, new revision, compare).

»
6 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится

Always try to stick to integers.

In this case it's equivalent (mathematically) to ll coins = (k+l+m-1)/m;

»
6 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I faced the same problem. But it's working fine with long double.