Description
松哥大吃一顿后,他的体重随着时间的增长而不断增长,直到有一天他的体重达到了n吨,他意识到他不能再这样下去了,所以他居然决定减肥。他每天上午跑步能够减到a吨,但是晚上吃饭又增加了b吨。松哥想要直到第几天后他的体重第一次小于m吨,你能告诉他嘛?
Input
多组测试数据。
每组测试数据包含4个正整数n,m,a,b。
所有的整数大小均不大于10000。
Output
对于每组测试数据,输出一个整数代表松哥第几天后他的体重第一次小于m吨。
如果不可能输出”impossible”.
Sample Input
5 1 3 1
Sample Output
2
解析:如果a<b并且第一天早上过后如果体重没有小于m,那么此种情况就是impossible。其他的情况都是可以小于m的,我们直接暴力加减加减算出第一次小于m就ok。
#include <stdio.h>
int main()
{
int a,b,n,m,t;
while(~scanf("%d%d%d%d",&n,&m,&a,&b)){
t=0;
if(a<=b&&n-a>=m){ //无解情况
printf("impossible\n");
continue;
}
while(n>=m){
t++; //一天之际在于晨,先t++
n=n-a; //上午减体重
if(n<m){ //如果上午就小于m,直接退出
break;
}
n=n+b; //下午加体重
}
printf("%d\n",t);
}
return 0;
}