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

Codeforces Round #353 (Div. 2)-A. Infinite Sequence(模拟)

2016-05-17 10:20 429 查看
A. Infinite Sequence

time limit per test
1 second

memory limit per test
256 megabytes

input
standard input

output
standard output

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 bappears 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).

Examples

input
1 7 3


output
YES


input
10 10 0


output
YES


input
1 -4 5


output
NO


input
0 60 50


output
NO


Note

In the first sample, the sequence starts from integers 1, 4, 7,
so 7 is its element.

In the second sample, the favorite integer of Vasya is equal to the first element of the sequence.

In the third sample all elements of the sequence are greater than Vasya's favorite integer.

In the fourth sample, the sequence starts from 0, 50, 100,
and all the following elements are greater than Vasya's favorite integer.

题意:给出s1=a,si=b,找等差数列是否符合c。坑点在i=1时,任何c都是符合的。

AC代码:

#include<iostream>
#include<functional>
#include<algorithm>
#include<cstring>
#include<string>
#include<vector>
#include<cstdio>
#include<cmath>
#include<set>
#include<map>
using namespace std;
#define CRL(a) memset(a,0,sizeof(a))
#define QWQ ios::sync_with_stdio(0)
typedef unsigned __int64 LL;
typedef  __int64 ll;
const int T = 200000+50;
const int mod = 1000000007;
const double PI = 3.1415926535898;

int main()
{
#ifdef zsc
freopen("input.txt","r",stdin);
#endif

ll a,b,c;
while(~scanf("%I64d%I64d%I64d",&a,&b,&c))
{
if(a==b){
printf("YES\n");
}
else if(c==0){
if(b==a)printf("YES\n");
else printf("NO\n");
}
else if(c>0){
if(a>=b)printf("NO\n");
else {
if((b-a)%c==0)printf("YES\n");
else printf("NO\n");
}
}
else {
if(a<=b)printf("NO\n");
else {
if((a-b)%(-c)==0)printf("YES\n");
else printf("NO\n");
}
}
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  模拟 codeforces