有很多同学可能比较迷。
#include <bits\stdc++.h>
#define pb push_back
#define mp make_pair
using namespace std;
int a[28];
char s[300];
int main()
{
int a,b,f,k;
scanf("%d%d%d%d",&a,&b,&f,&k);
int cnt=0;
int now=b-f;
int tmp1=2*f,tmp2=2*(a-f);//要判断来回
int flag=1;
if(now<0)flag=0;
for(int i=1; i<k; i++) //注意是小于k,最后一趟要特殊判定一下
{
if(i%2==1)
{
if(now<tmp2)cnt++,now=b;
now-=tmp2;
}
else
{
if(now<tmp1)cnt++,now=b;
now-=tmp1;
}
if(now<0)flag=0; //如果加满油都不行,那就flag为0
}
int tmp;
if(k%2==1)tmp=a-f;
else tmp=f;
if(now<tmp)cnt++,now=b;
now-=tmp;
if(now<0)flag=0;
if(flag==1)
printf("%d\n",cnt);
else printf("-1\n");
return 0;
}