Code:
#include<bits/stdc++.h>
#define setIO(s) freopen(s".in","r",stdin)
#define maxn 2003
using namespace std;
map<int,int>k;
int arr[maxn],f[maxn][maxn];
int main() {
// setIO("input");
int n,ans=0;
scanf("%d",&n);
for(int i=1;i<=n;++i) scanf("%d",&arr[i]);
if(n==1) {
printf("1\n");
return 0;
}
for(int i=1;i<n;++i) f[i][n]=2;
k[arr[n]]=n;
for(int j=n-1;j>1;--j) {
for(int i=1;i<j;++i) {
f[i][j]=2;
int to=arr[j]+arr[j]-arr[i];
if(k[to]) {
f[i][j]=max(f[i][j], f[j][k[to]] + 1);
}
ans=max(f[i][j], ans);
}
k[arr[j]]=j;
}
printf("%d\n",ans);
return 0;
}