1123: 松哥的困惑III
Description
松哥大吃一顿后,他的体重随着时间的增长而不断增长,直到有一天他的体重达到了n吨,他意识到他不能再这样下去了,所以他居然决定减肥。他每天上午跑步能够减到a吨,但是晚上吃饭又增加了b吨。松哥想要直到第几天后他的体重第一次小于m吨,你能告诉他嘛?
Input
多组测试数据。
每组测试数据包含4个正整数n,m,a,b。
所有的整数大小均不大于10000。
Output
对于每组测试数据,输出一个整数代表松哥第几天后他的体重第一次小于m吨。
如果不可能输出”impossible”.
Sample Input
5 1 3 1
Sample Output
2
HINT
这题坑点有点多= =,比如虽然他b>=a的话是输出impossible但是他第一次n-a的是可以操作的,然后n<m的话应该出0 ,所以最后写出了一个这么奇怪的循环
Code:
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
int main()
{
int n,m,a,b;
while(~scanf("%d %d %d %d",&n,&m,&a,&b))
{
int day= 0;
while(n>=m)
{
day++;
n-=a;
if(n<m)
break;
if(b>=a)
{
day=-1;
break;
}
n+=b;
}
if(day>=0)
printf("%d\n",day);
else
printf("impossible\n");
}
return 0;
}