Codeforces Round #436 (Div. 2) C - Bus

/*
给你加油站,油箱最大加油量,终点和往返次数,求最少加几次油
模拟即可
*/
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,k,f,now,ans=0;
    cin>>a>>b>>f>>k;
    now=b;
    if(f>b) puts("-1");
    else
    {
        now-=f;
        for(int i=1; i<k; ++i)
        {
            int d=(i&1)?a-f:f;
            d<<=1;
            if(d>now) ++ans,now=b;
            if(d>now) return 0*puts("-1");
            now-=d;
        }
        int d=(k&1)?a-f:f;
        if(d>now) ++ans,now=b;
        if(d>now) puts("-1");
        else
            printf("%d",ans);
    }
    return 0;
}

 

posted @ 2017-09-26 20:32  Kearon  阅读(77)  评论(0编辑  收藏  举报