您的位置:首页 > 产品设计 > UI/UE

Infinite Sequence

2016-06-02 11:08 381 查看
Description

Vasya likes everything infinite. Now he is studying the properties of a sequence s, such that its first element is equal to a (s1 = a), and the difference between any two neighbouring elements is equal to c (si - si - 1 = c). In particular, Vasya wonders if his favourite integer b appears in this sequence, that is, there exists a positive integer i, such that si = b. Of course, you are the person he asks for a help.

Input

The first line of the input contain three integers a, b and c ( - 109 ≤ a, b, c ≤ 109) — the first element of the sequence, Vasya’s favorite number and the difference between any two neighbouring elements of the sequence, respectively.

Output

If b appears in the sequence s print “YES” (without quotes), otherwise print “NO” (without quotes).

Sample Input

Input

1 7 3

Output

YES

Input

10 10 0

Output

YES

Input

1 -4 5

Output

NO

Input

0 60 50

Output

NO

正确代码:

#include<iostream>
using namespace std;
int main(void)
{
int a, b, c;
cin>>a>>b>>c;
if(c == 0)
{
if(a == b)
cout<<"YES";
else
cout<<"NO";

}
else
{
if(((b-a)%c == 0) && (((b-a)>= 0 && c > 0)||((b-a)<= 0 && c < 0)))
cout<<"YES";
else
cout<<"NO";
}

return 0;
}


以下为错误代码段:

#include<stdio.h>
#include<iostream>
using namespace std;
int main(void)
{
long long a, b, c;
cin>>a>>b>>c;
if(c == 0 && a == b)
{
printf("YES\n");
}
else if(c == 0 && a != b)
{
printf("NO\n");
}
else
{
long long t;
t = (b-a)%c;
//cout<<t;
if(t == 0)
{
if((a > b && c < 0) || (a < b && c > 0 ))
{
printf("YES");
}
else
{
printf("NO");
}
}
else
{
printf("NO");
}
}
return 0;
}


个人认为两段代码,逻辑无差别,但是第二个就不对,,,请个位路过的朋友帮忙看看吧~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: