/* ID: modengd1 PROG: theme LANG: C++ */ #include <iostream> #include <stdio.h> #include <vector> using namespace std; int input[5000]; int main() { freopen("theme.in","r",stdin); freopen("theme.out","w",stdout); int N; int ans=0; scanf("%d",&N); for(int i=0;i<N;i++) { scanf("%d",&input[i]); } for(int i=5;i<N;i++)//枚举起始位置差 { int len=0,dis=89; for(int j=0;j<=N-i;j++) { if(input[i+j]-input[j]==dis) { if(len==i)//长度不超过距离限制就没有重复 break; len++; ans=max(len,ans); } else { len=1; dis=input[i+j]-input[j]; } } } if(ans>=5) cout<<ans<<endl; else cout<<0<<endl; return 0; }
原文:http://www.cnblogs.com/modengdubai/p/4856205.html