#include <bits/stdc++.h>
using namespace std;
void isValidPair(int arr[], int k, int n){
//element , index of last occurence
unordered_map<int,int>mpp;
for(int i=0;i<n;i++){
//if curr el found in map
if(mpp.find(arr[i])!=mpp.end()){
int index=mpp[arr[i]];
int dist = i-index-1;
if(dist<=k) cout<<"Valid pair found at index "<<i<<endl;
}
else{
mpp[arr[i]]=i;
}
}
}
int main() {
// your code goes here
int arr[]={1, 2, 3 ,1,2};
int k=2;
isValidPair(arr, k, 5);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGlzVmFsaWRQYWlyKGludCBhcnJbXSwgaW50IGssIGludCBuKXsKCS8vZWxlbWVudCAsIGluZGV4IG9mIGxhc3Qgb2NjdXJlbmNlIAoJdW5vcmRlcmVkX21hcDxpbnQsaW50Pm1wcDsKCQoJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJLy9pZiBjdXJyIGVsIGZvdW5kIGluIG1hcCAKCQlpZihtcHAuZmluZChhcnJbaV0pIT1tcHAuZW5kKCkpewoJCQlpbnQgaW5kZXg9bXBwW2FycltpXV07CgkJCWludCBkaXN0ID0gaS1pbmRleC0xOwoJCQlpZihkaXN0PD1rKSBjb3V0PDwiVmFsaWQgcGFpciBmb3VuZCBhdCBpbmRleCAiPDxpPDxlbmRsOwoJCX0KCQllbHNlewoJCQltcHBbYXJyW2ldXT1pOwoJCX0KCX0KfQppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWludCBhcnJbXT17MSwgMiwgMyAsMSwyfTsKCWludCBrPTI7Cglpc1ZhbGlkUGFpcihhcnIsIGssIDUpOwoJcmV0dXJuIDA7Cn0=