Pineapple Incident
时间: 1ms 内存:128M
描述:
泰德有一个菠萝。这种菠萝能够像斗牛犬一样吠叫!在时间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
提示:
参考答案(内存最优[1120]):
#include<stdio.h>
#include<string.h>
using namespace std;
#define ll long long int
int main()
{
ll a,b,c;
scanf("%I64d%I64d%I64d",&a,&b,&c);
if(a>c)
{
printf("NO\n");
}
if(a==c)
{
printf("YES\n");
}
if(a<c)
{
if(((c-a)%b==0)||((c-a)%b==1)&&(c-a)!=1)
{
printf("YES\n");
}
else printf("NO\n");
}
}
参考答案(时间最优[1]):
#include<stdio.h>
int main()
{
int t,x,s;
scanf("%d%d%d",&t,&s,&x);
int sum=t;
int i=2;
int flag=0;
while(sum<=x)
{
if(sum==x)
{
printf("YES");
flag=1;
}
if(i%2==0)
sum=t+i/2*s;
else
sum=t+i/2*s+1;
i++;
}
if(flag==0)
printf("NO");
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。