hdu 5400 等差数列
2015-08-18 18:27
176 查看
#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 ; int d1,d2; int b ,c ; int main(){ #ifndef ONLINE_JUDGE freopen("aaa","r",stdin); #endif int 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 =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的情况,其他没有什么
相关文章推荐
- 数学H - The Land of Justice
- 《FLASH CC 2015 CANVAS 中文教程》——2、基本的交互(点击、触摸)事件
- POJ 1017 Packets
- SSAS处理时“找不到属性键”的解决办法 (转载)
- PowerBuilder中使用JDBC连接MYSQL 无法使用COUNT(*) MAX() 函数的处理
- BAT批处理文件语法
- Method about connect to Netezza using ODBC in SAS EG
- Linux - 系统常用命令
- FFMPEG timestamp conception and Unit Conversion
- HDUOJ_1869(六度分离)(dijkstra)
- poj 3468 线段树成段增减+区间求和
- Android Material Design之Toolbar与Palette实践
- c多线程学习
- Linux - Linux系统目录架构
- Android播放在线音乐文件
- Struts2 result 集类型列表
- JQuery中全选与反选的
- Android播放在线音乐文件
- 【剑指offer】直扑克
- Linux - 文件基本操作管理