CF 602B Approximating a Constant Range
2016-02-25 12:07
375 查看
(●'◡'●)
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #include<string> #include<cstdlib> #include<vector> #include<stack> #include<map> using namespace std; typedef long long ll; int main() { int n,a1,a,dist1=0,dist2=0,l=1,r=1,ans=0; scanf("%d",&n); scanf("%d",&a1); for(int i=2;i<=n;i++) { scanf("%d",&a); dist1=a-a1; //根据题意:差值只能为0,1,-1 a1=a; if(dist1==0) continue; //差值为0的继续往前走 if(dist1!=dist2) //差值不为0且与前一个差值不相等 { dist2=dist1; //更新当前区间的差值 r=i; } else //差值不为0但与前一个差值相同(如子序列1 2 3) { ans=max(ans,i-l); //更新区间长度 l=r;r=i; } } ans=max(ans,n-l+1); //若子序列的首尾相同(如子序列2 3 3 2),则ans=n-l+1; printf("%d\n",ans); return 0; }
相关文章推荐
- Android之MediaPlayer播放音乐并实现进度条实例
- 一个超炫的listview
- Android图片编辑
- iOS_Blocks
- Android 的Paint(画笔)及Canvas(画布)
- 嵌入式软件工程师和需要与硬件交互的Android app开发工程师工作中注意事项
- Unity3d之截图方法
- 开源 java CMS - FreeCMS2.3 移动app生成首页数据
- 转:iOS开发多线程篇—GCD介绍
- 关于An association from the table refers to an unmapped class
- android CountDownTimer定时器实现连续单击监听
- iOS上传到App Store步骤流程
- android:clipToPadding和android:clipChildren
- Android中Fragment与Activity的生命周期对比
- iOS绘图教程
- iOS开发里的线程安全机制
- android自定义adapter之简单写法
- Android如何防止apk程序被反编译
- Android--自定义tab+viewPager
- Android事件分发机制完全解析,带你从源码的角度彻底理解