//一个序列,两个公差d1,d2
//问有多少个区间使得这个区间存在一个点,它的左边是公差为d1的序列
//它的右边是公差为d2的序列
//直接存入每一个点向左和向右延伸的公差长度,乘一下即可
//还有就是注意一下d1=d2的情况
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std ;
const int maxn = 1e5+10 ;
int a[maxn] ;
typedef long long ll ;
ll l[maxn] , r[maxn] ;
int main()
{
int n , d1 , d2 ;
while(~scanf("%d%d%d" ,&n , &d1 , &d2))
{
for(int i = 1;i <= n;i++)
scanf("%d" , &a[i]) ;
ll ans = 0 ;
if(d1 == d2)
{
ll sum = 1;
for(int i = 2;i <= n;i++)
if(a[i] == a[i-1] + d1)
sum++ ;
else
{
ans += (sum+1)*sum/2 ;
sum = 1 ;
}
ans += (sum+1)*sum/2 ;
}
else
{
l[0] = 0 ;r[n+1] = 0 ;
for(int i = 1;i <= n;i++)
if(a[i] == a[i-1] + d1)
l[i] = l[i-1] + 1 ;
else l[i] = 1 ;
for(int i = n;i >= 1;i--)
if(a[i] == a[i+1] - d2)
r[i] = r[i+1] + 1 ;
else r[i] = 1 ;
for(int i = 1;i <= n;i++)
ans += l[i]*r[i] ;
}
printf("%lld\n" , ans) ;
}
return 0 ;
}

最新文章

  1. TSQL 字符串函数:截断和查找
  2. React Native之FlexBox介绍和使用
  3. Python之路【第十七篇】Django进阶篇
  4. Windbg调试命令详解
  5. json处理总结(前端js和后端java)
  6. Python操作Excel之xlwt
  7. 未来十年的十三条思考(FW)
  8. Python 以指定概率获取元素
  9. js自执行函数表达式
  10. hdu2208之搜索
  11. TLSAlloc()
  12. mvc+webapi+dapper+ef codefirst项目搭建
  13. java~gradle构建公用包并上传到仓库~使用私有仓库的包
  14. 《HelloGitHub月刊》第 06 期
  15. idea spring boot
  16. wxPython制作跑monkey工具(python3)
  17. stringstream
  18. markdown的使用语法的补充
  19. dtb和dtc文件浅析
  20. 使用&quot;+&quot;进行字符串拼接

热门文章

  1. ssh 免交互式登陆
  2. JS几种遍历方式比较
  3. POJ 3271 BFS (大坑)
  4. CORS support in Spring Framework--官方
  5. 实测Untangle - Linux下的安全网关
  6. linux RAC 安装失败完全卸载
  7. epson 630打印机驱动安装不上
  8. BZOJ3130: [Sdoi2013]费用流(二分,最大流)
  9. 【editplus经常用的快捷键】Editplus 选中一行ctrl+r,Edit 合并行 Ctrl+Shift+J 合并选定行 删除当前行
  10. 洛谷 P2355 团体操队形