hdu 5400 等差数列

来源:互联网 发布:柠檬绿茶淘宝店网址 编辑:程序博客网 时间:2024/05/16 08:11

#include<stdio.h>#include<string>#include<map>#include<vector>#include<cmath>#include<stdlib.h>#include<string.h>#include<algorithm>#include<queue>#include<iostream>using namespace std;const int N=1e5+10;const int MOD=1e9+7;const int inf=1e9+7;int n,m;int a[N];int d1,d2;int b[N],c[N];int main(){#ifndef ONLINE_JUDGEfreopen("aaa","r",stdin);#endifint T;while(~scanf("%d%d%d",&n,&d1,&d2)){        for(int i=1;i<=n;i++)scanf("%d",&a[i]);        b[1]=1;        for(int i=2;i<=n;i++)  if(a[i]-a[i-1]==d1) b[i]=b[i-1]+1;else b[i]=1;        c[n]=1;        for(int i=n-1;i>=1;i--) if(a[i+1]-a[i]==d2) c[i]=c[i+1]+1;else c[i]=1;        if(d1==d2) for(int i=1;i<=n;i++) b[i]=1;        long long res=0;        for(int i=1;i<=n;i++) res+=(long long)b[i]*c[i];        printf("%I64d\n",res);}return 0;}

记得考虑long long 和 d1=d2的情况,其他没有什么


0 0