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; }