#include using namespace std; #define f(i,a,b) for(ll i=a;i=b;i--) #define ff(i,a,b,c) for(int i=a;i0) #define vi vector #define vll vector typedef pair P; typedef pair ,int> PII; typedef pair ,long long int> PLL; typedef pair PL; typedef long long int ll; typedef long double ld; typedef int I; typedef string S; ll gcd(ll n,ll m){if(m<=n && n%m==0)return m;if(nn-r)r=n-r;f(i,1,r+1)ans=(ans*(n-i+1))/(i);return ans;} ll mu(ll a,ll b,ll mod){return ((a%mod)*(b%mod))%mod; } ll mul(ll a,ll b,ll mod){a%=mod;b%=mod;ld res=a;res*=b;ll c=(ll)(res/mod);a*=b;a-=c*mod;a%=mod;if(a<0)a+=mod;return a;} ll mod_pow(ll a,ll b,ll mod){ll ans=1;while(b){if(b&1)ans=mul(ans,a,mod);a=mul(a,a,mod);b>>=1;}return ans;} ll div(ll x,ll y,ll mod){return mul(x,mod_pow(y,mod-2,mod),mod);} I main() { ll n ; cin >> n ; ll a[ n ] ; map< ll , ll > mp ; vector< ll > v ; ll ans = 0 ; f(i, 0, n ) { cin >> a[ i ] ; if( !mp.count( a[ i ] ) ) v.push_back( a[ i ] ) ; mp[ a[ i ] ] ++; ans = max( ans ,mp[ a[ i ] ] ) ; } sort( v.begin() , v.end() ) ; f(i, 1, v.size() -1 ) { if( abs( v[ i ] - v[ i - 1 ] ) <= 1 ) { ans = max( ans , mp[ v[ i ] ] + mp[ v[ i -1 ] ] ); } } cout << ans ; }