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