首页 > 其他 > 详细

3月13号周练

时间:2016-03-13 17:24:02      阅读:105      评论:0      收藏:0      [点我收藏+]

E.Arithmetic Sequence

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#define maxn 100005
int a[maxn],l[maxn],r[maxn];
int n,d1,d2;
void init()
{
    int i,j;
    l[1] = 0;
    r[n] = 0;
    for(i = 2;i <= n;i ++)
    {
        if(a[i] - a[i-1] == d1)
            l[i] = l[i-1]+1;
    }
    for(j = n-1;j >=1;j --)
    {
        if(a[j+1]- a[j] == d2)
            r[j] = r[j+1] + 1;
    }
}
int main()
{
    int i;
    while(scanf("%d %d %d",&n,&d1,&d2)!=EOF )
    {
        for(i = 1;i <= n;i ++)
           {
               scanf("%d",&a[i]);
           }
            memset(l,0,sizeof(l));
            memset(r,0,sizeof(r));
           init();
           long long ans = 0;
           if(d1 == d2)
           {
               for(i = 1;i <= n; i++)
                  ans += l[i]+1;
           }
          else
          {
             for(i = 1;i <= n; i++)
                 ans += 1ll*(l[i]+1)*(r[i]+1);
          }
           printf("%lld\n",ans);
    }
    return 0;
}

 

3月13号周练

原文:http://www.cnblogs.com/zhangjialu2015/p/5272208.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!