Binary search Advanced- HACKERRANK


Binary search Advanced- HACKERRANK
problem link : https://www.hackerrank.com/contests/launchpad-1-winter-challenge/challenges/binary-search-advanced/problem

 SOLUTION :

#include<bits/stdc++.h>
using namespace  std ;
typedef long long  ll;
typedef pair<ll, ll> Pll;
#define F first
#define S second
#define MP make_pair
#define PB push_back
#define rad(X) cout << (X) << endl
#define ASH(X) cout << (X) << " "
#define deb(x) cout << #x << " " << x << endl;
#define deb2(x,y) cout << #x << " " << x << " " << #y << " " << y << endl;
#define FOR(I,A,B) for(ll I = (A); I <= (B); I++)
#define cir(I,B,A) for(ll I = (A); I >=(B); I--)
#define MS0(X) memset((X), 0, sizeof((X)))
#define MS1(X) memset((X), -1, sizeof((X)))
#define SORT(c) (sort(c.begin(),c.end()))
#define SORT_UNIQUE(c) (sort(c.begin(),c.end()), c.resize(distance(c.begin(),unique(c.begin(),c.end()))))
#define GET_POS(c,x) (lower_bound(c.begin(),c.end(),x)-c.begin())
#define CASES int ___T; cin >> ___T; for(int cs=1;cs<=___T;cs++)
#define FAST()  ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
template<typename T>T gcd(T x, T y){if(y==0)return x;else return gcd(y,x%y);}
ll fx[] = {1, 1, 0, -1, -1, -1, 0, 1};
ll fy[] = {0, 1, 1, 1, 0, -1, -1, -1};
vector<ll>a,b,c;
map<ll,ll>m1,m2,m3;

/************************************************/
void GOOGLE(ll ar[],ll s,ll n,ll k)
{
  ll mid=(s+n)/2;
  ll cnt =0;
  if(s >= n){
      cout<<-1<<" "<<-1<< " "<<0;
      return;
  }
  if(ar[mid]==k && ar[mid-1]!=k)
  {
    ll start = mid;
    while(ar[mid]==k)
    {
      cnt++;
      mid++;
    }
    cout<<start<<" "<<mid-1<<" "<<cnt<<endl;;
    return;
  }
    else if(ar[mid]==ar[mid-1] || ar[mid]>k)
    GOOGLE(ar,s,mid,k);
    else
    GOOGLE(ar,mid+1,n,k);
}


 void Execute()
{
      ll n,nb,val,a,b,c,g,inc,dec,l,r,d,k;
      cin >> n;
      ll ar[n+1];
      FOR(i,0,n-1) cin >> ar[i];
      cin >> k;
      GOOGLE(ar,0,n-1,k);
}

int32_t main()

{
    //freopen("atomm.txt", "r", stdin);
    FAST();
  //  CASES

        Execute();


}

Comments

Popular Posts