Skip to content
Programming101
Programmingoneonone
  • Home
  • CS Subjects
    • Internet of Things (IoT)
    • Digital Communication
    • Human Values
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
    • 100+ Java Programs
    • 100+ C Programs
  • HackerRank Solutions
    • HackerRank Algorithms Solutions
    • HackerRank C problems solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
Programming101
Programmingoneonone

HackerEarth The maximum range problem solution

YASH PAL, 31 July 2024
In this HackerEarth The maximum range problem solution You are given an array of size N and an integer K. Your task is to find the largest subarray of the provided array such that the absolute difference between any two elements in the subarray is less than or equal to K.
Let M and m be the maximum and minimum values in the selected largest subarray. Now, M – m <= k must hold.
Print the length of the largest subarray.
HackerEarth The maximum range problem solution

HackerEarth The maximum range problem solution.

#include<bits/stdc++.h>
using namespace std;
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize ("-ffloat-store")
#pragma GCC optimize ("-fno-defer-pop")
#define all(a) a.begin(),a.end()
#define ll long long int
#define ld long double
ll power(ll a,ll b,ll m){ if(b==0) return 1; if(b==1) return a%m; ll t=power(a,b/2,m)%m; t=(t*t)%m; if(b&1) t=((t%m)*(a%m))%m; return t;}
ll modInverse(ll a, ll m) { return power(a, m-2, m); }
#define ps push_back
#define fs first
#define sc second
#define takeline cin.ignore();
#define iactive cout.flush();
#define N 3000005
#define endl "n"
#define mod 1000000007
int main(){
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);

ll i,j,k,l,n;
cin>>n>>k;
ll ar[n+1];
for(i=1;i<=n;i++){
cin>>ar[i];
}
multiset<ll> st;
j=1; ll an=0;
for(i=1;i<=n;i++){
st.insert(ar[i]);
while((*(--st.end()))-(*st.begin())>k){
st.erase(st.lower_bound(ar[j]));
j++;
}
an=max(an,(ll)st.size());
}
cout<<an;
return 0;
}

Second solution

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e6 + 14;
int n, k, a[maxn];
multiset<int> s;
int main(){
ios::sync_with_stdio(0), cin.tie(0);
cin >> n >> k;
int ans = 0;
for(int i = 0, p = 0; i < n; i++){
cin >> a[i];
s.insert(a[i]);
while(*s.rbegin() - *s.begin() > k)
s.erase(s.find(a[p++]));
ans = max<int>(ans, s.size());
}
cout << ans << 'n';
}
coding problems solutions

Post navigation

Previous post
Next post

Pages

  • About US
  • Contact US
  • Privacy Policy

Programing Practice

  • C Programs
  • java Programs

HackerRank Solutions

  • C
  • C++
  • Java
  • Python
  • Algorithm

Other

  • Leetcode Solutions
  • Interview Preparation

Programming Tutorials

  • DSA
  • C

CS Subjects

  • Digital Communication
  • Human Values
  • Internet Of Things
  • YouTube
  • LinkedIn
  • Facebook
  • Pinterest
  • Instagram
©2025 Programmingoneonone | WordPress Theme by SuperbThemes