Arithmetic Sequence
Problem Description
A sequence )-arithmetic sequence.
Input
There are multiple test cases.
For each test case, the first line contains three numbers ).
For each test case, the first line contains three numbers ).
Output
For each test case, print the answer.
Sample Input
5 2 -2
0 2 0 -2 0
5 2
3
2 3 3 3 3
Sample Output
12
5
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 const long long maxn = 100005; 6 long long A[maxn]; 7 int main() 8 { 9 long long flag,n, d1, d2; 10 long long sum, cnt; 11 while(~scanf("%I64d %I64d %I64d", &n, &d1, &d2)) 12 { 13 for(int i = 0; i < n; i++) 14 { 15 scanf("%I64d", &A[i]); 16 } 17 18 sum = 0, flag = 0, cnt = 0; 19 20 for(int i = 1; i < n; i++) 21 { 22 if(A[i]-A[i-1] == d1 && flag == 0) 23 { 24 cnt ++; 25 continue; 26 } 27 if(A[i]-A[i-1] == d2) 28 { 29 flag = 1; 30 cnt ++; 31 continue; 32 } 33 //printf("cnt = %d ", cnt); 34 sum += (1+cnt)*cnt/2; 35 if(cnt != 0) i--; 36 cnt = 0; 37 flag = 0; 38 } 39 sum += (1+cnt)*cnt/2; 40 //if (d1!=d2) 41 printf("%I64d ", sum + n); 42 //else printf("%I64d ",n); 43 } 44 return 0; 45 } 46 47 [ Copy to Clipboard ] [ Save to File]