Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u
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
1 7 3
YES
10 10 0
YES
1 -4 5
NO
0 60 50
NO
思路:
等差数列,ai若在数列中,则ai-a1是3的倍数,若则ai-a1<0,则要保证d<0,若ai-a1>0要保证d>0;
代码:
#include<stdio.h> #include<string.h> using namespace std; int main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); int t=b-a; if(c==0) { if(a==b) printf("YES\n"); else printf("NO\n"); } else { if(t%c==0 && (t<=0 && c<0||t>=0 && c>0)) printf("YES\n"); else printf("NO\n"); } return 0; }