AT_abc369_c 题解
题目传送门
思路
开一个变量表示当前等差数列的长度,设其为
对于第
AC CODE
#include<bits/stdc++.h>
using namespace std;
int read(){int x=0;char f=1,ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;}
const int N=2e5+10;
int a[N];
int main(){
int n=read();
if(n==1)
return printf("1\n"),0;
for(int i=1;i<=n;++i)
a[i]=read();
int cnt=1;
long long ans=n;
for(int i=2;i<=n;++i)
if(i>2&&a[i]-a[i-1]==a[i-1]-a[i-2])
++cnt;
else{
ans+=(long long)cnt*(cnt-1)/2;
cnt=2;
}
ans+=(long long)cnt*(cnt-1)/2;
printf("%lld\n",ans);
return 0;
}