#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int cmp(const void* a,const void* b) { const int* ai= (int *)a; const int* bi= (int *)b; return (*ai-*bi); } int main(){ int n; cin >> n; int f[n]; int* a = (int *)malloc(n*sizeof(int)); for(int a_i = 0;a_i < n;a_i++){ cin >> a[a_i]; f[a_i]=0; } qsort(a,n,sizeof(int),cmp); int ans,mf,mpos,k;int c[n]; c[0]=a[0];f[0]=1;k=0;mpos = 0;mf = 1;ans=0; for(int i = 1;i < n;i++){ if(a[i] == a[i-1]) f[k]++; else { if(f[k] > mf) { mf = f[k]; mpos = k; } if(k>=1) { if((c[k]-c[k-1] == 1) || (c[k]-c[k-1] == -1)) if(f[k]+f[k-1] > ans) ans = f[k]+f[k-1]; } k++; c[k]=a[i]; f[k]=1; } } if((c[mpos-1]-c[mpos] == 1) || (c[mpos-1]-c[mpos] == -1)) { if(f[mpos]+f[mpos-1] > ans) ans = f[mpos]+f[mpos-1]; } else if((c[mpos+1]-c[mpos] == 1) || (c[mpos+1]-c[mpos] == -1)) { if(f[mpos]+f[mpos+1] > ans) ans = f[mpos]+f[mpos+1]; } else { if(f[mpos] > ans) ans = f[mpos]; } cout<< ans; return 0; }