# Hackerearth Pairs Having Similar Elements problem solution

In this HackerEarth Pairs Having Similar Elements problem solution, we have given an array, A, having N integers A1,A2,...,An.Two elements of the array Ai and Aj are called similar if Ai = Aj + 1 or Aj = Ai + 1.

## Hackerearth Pairs Having Similar Elements problem solution.

`#include <bits/stdc++.h>using namespace std;#define ll long longint main() {    ios::sync_with_stdio(0);    cin.tie(0);        int n;        cin>>n;        int* a= new int[n];        for(int i=0;i<n;i++)            cin>>a[i];        sort(a,a+n);        ll ans=0;        ll ct=1,ctdis=1;        for(int i=1;i<n;i++){            if(a[i]==a[i-1]){                ct++;            }            else if(a[i]==(a[i-1]+1)){                ct++;                ctdis++;            }            else{                if(ct>=2&&(ctdis>=2)){                    ans+=(((ct)*(ct-1))/2);                }                ct=1;                ctdis=1;            }        }        if(ct>=2&&(ctdis>=2)){            ans+=(((ct)*(ct-1))/2);        }        cout<<ans<<endl;    return 0;}`

### Second solution

`#include<bits/stdc++.h>using namespace std;#define   pb              push_back#define   REP(i,n)        for(i=1;i<=n;i++)#define   FOR(i,a,b)      for(i=a;i<=b;i++)#define   all(v)          v.begin(),v.end()#define   F               first#define   S               second#define   vl              vector<LL>#define   itr             ::iterator it#define   lb              lower_bound#define   ub              upper_bound#define   LL              long long#define   ULL             unsigned long long#define   ret             return LL n,i,j,ans = 0;LL a[10000000] ;void f(LL x){     ans += (x * (x-1))/2 ; } int main(){    ios_base::sync_with_stdio(false);    cin.tie(NULL);    cin>>n ;     assert(n>=1 and n<=1000000) ;     REP(i,n)     { cin>>a[i] ;      assert(a[i]>=-1000000000 and a[i]<=1000000000) ;     }    sort(a+1,a+1+n) ;        LL x = 0 ;     for(i=1;i<=n;i++)    {  LL k = 0,l = 0   ;        for(j=i+1;j<=n;j++)       {  k = max(k,a[j]-a[j-1]) ;          if(k==1) l++ ;            if(k>1) break ;        }        if(l)        f(j-i) ;       i = j - 1 ;      }    cout<<ans<<endl ; }`