HackerEarth Random Generator problem solution YASH PAL, 31 July 2024 In this HackerEarth Random Generator problem solution Aparna recently created a random number generator and now she wants Harsh to check if it works fine. She gives Harsh an array containing N numbers generated from this random number generator of hers, and two integers K and P. If the given array contains more than or equal to K numbers in the range X-P to X+P (both inclusive) for any integer X, then the random generator fails. If for any X the generator fails then ultimately it fails. Help Harsh in determining whether the random generator works well or not. HackerEarth Random Generator problem solution. #include <bits/stdc++.h>#define _ ios_base::sync_with_stdio(false);cin.tie(0);using namespace std;#define pb push_back#define pob pop_back#define pf push_front#define pof pop_front#define mp make_pair#define all(a) a.begin(),a.end()#define bitcnt(x) __builtin_popcountll(x)#define MOD 1000000007#define total 5000005#define M 1000000000001#define NIL 0#define MAXN 200001#define EPS 1e-5#define INF (1<<28)typedef unsigned long long int uint64;typedef long long int int64;vector<int>v;int main(){ int t,n,i,k,p,j; freopen("input.txt","r",stdin); freopen("output.txt","w",stdout);cin>>t;while(t--){ cin>>n>>k>>p; for(i=0;i<n;i++){ cin>>j; v.pb(j); } sort(all(v)); for(i=0;i<n;i++){ int id1=lower_bound(all(v),v[i]-2*p)-v.begin(); if(i-id1+1>=k){ cout<<"NO"<<endl; break; } } if(i==n) cout<<"YES"<<endl; v.clear();} fclose(stdout); return 0;} Second solution #include <cstdio>#include <vector>#include <cassert>#include <algorithm>using namespace std;#define MAXN 100000#define MAXI 1000000000vector<int> inp;vector<int>::iterator up;int T, N, K, P;bool solve(){ int disp = 2*P ; sort(inp.begin(), inp.end()); for(int i=0;i<N;i++){ int val = inp[i]; val = val+disp; up = upper_bound(inp.begin(), inp.end(), val); int idx = (up - inp.begin()); if (idx-i>=K) return false; } return true;}int main(){ int a; scanf("%d", &T); assert(T>0); assert(T<=10); while(T--){ inp.clear(); scanf("%d %d %d", &N, &K, &P); assert(N>0); assert(N<=MAXN); assert(K>0); assert(K<=MAXN); assert(P>=0); assert(P<=MAXI); for(int i=0;i<N;i++){ scanf("%d", &a); assert(a>=-MAXI); assert(a<=MAXI); inp.push_back(a); } if(solve()) printf("YESn"); else printf("NOn"); }} coding problems