zcmu 1123

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
 
代码如下:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#include<time.h>
using namespace std;
#define FORA(i,x,y) for(int i = x; i < y; i++)
#define FORB(i,x,y) for(int i = x; i <= y; i++)
#define FORC(i,y,x) for(int i = y; i > x; i--)
#define FORD(i,y,x) for(int i = y; i >= x; i--)
#define INF 1000000000
#define LL long long
const int mod = 1000000;
const int maxn = 1000000;

int main(){
    int n,m,a,b;
    while(~scanf("%d %d %d %d",&n,&m,&a,&b)){
        if(a <= b) {
            if(n < m) printf("0\n");
            else if(n - a < m) printf("1\n");
            else printf("impossible\n");
        }
        else {
            int count = 0;
            int nn = n;
            while(n >= m){
                n = nn - a;
                count++;
                nn -= a;
                nn += b;
            }
            printf("%d\n",count);
        }
    }
    return 0;
}
posted @ 2018-08-20 13:03  半忧夏  阅读(171)  评论(0编辑  收藏  举报