Zadanie konik polny

0

Konik polny chce się przedostać na drugą stronę drogi. Pierwszy skok może zrobić długości S, a
ponieważ się męczy, to każdy kolejny może zrobić tylko o połowę krótszy od poprzedniego (długość
skoku zaokrąglamy w dół do liczby całkowitej). Konik zawsze może wykonywać skok długości 1, nie
męcząc się przy tym.
Znając szerokość drogi, chcielibyśmy wiedzieć, ile skoków musi wykonać konik, aby przedostać się na
drugą stronę drogi.

długość drogi - x
1<=x,s<=10^9

#include <iostream>
using namespace std;

long long s,sk,i=0;

int main()
{
    cin>>s>>sk;
    if(s<sk){
        cout<<1;
        return 0;
    }
    while(s!=0){
        s-=sk;
        sk/=2;
        ++i;
        if(sk==1){
            i+=s;
            cout<<i;
            return 0;
        }
    }
    cout<<i;
}
 

Z tym kodem mam jeden błąd ( na 7 testów ). Wcześniej były 2, ale udało mi się jeden wyeliminować. Pozostał jednak drugi. Gdzie jest błąd?

1

Dla testu 7 6 wypisuje ci 0, a moim zdaniem powinien 2

0

Już jest 100 :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1