问题 G: Pineapple Incident
时间限制: 1 Sec 内存限制: 128 MB
提交: 102 解决: 33
[提交][状态][讨论版][命题人:acm4302]
题目描述
泰德有一个菠萝。这种菠萝能够像斗牛犬一样吠叫!在时间t(以秒为单位),它第一次吠叫。然后每隔s秒后,它以1秒的间隔吠叫两次。因此它在时间t,t + s,t + s + 1,t + 2 s,t + 2 s + 1等时吠叫。
Barney早上醒来想要吃菠萝,但是当它吠叫时他不能吃。Barney计划在时间x(以秒为单位)吃它,所以他让你告诉他当时是否会吠叫。
输入
一行包含三个整数,t,s,x(0<=t,x<=10^9,2<=s<=10^9)
输出
如果菠萝在时间x吠叫,打印“YES”,否则打印“NO".
样例输入
3 10 4
样例输出
NO
这个答案还是麻烦,但提交正确,欢迎大佬批评指正
#include<stdio.h>
int main()
{
int t,s,x,flag=0,fla=1;
scanf("%d%d%d",&t,&s,&x);
int i=1,sum=t;
if(sum==x)
{
printf("YES");
flag=1;
}
else
{
while(1)
{
if(sum>x)
break;
else
{
if(fla==1)
sum+=s;
if(sum==x)
{
printf("YES");
flag=1;
break;
}
else
{
fla=0;
if(i%2!=0)
{
sum=sum+1;
i++;
}
else
{
sum=sum-1+s;
i++;
}
}
}
}
}
if(flag==0)
printf("NO");
return 0;
}