#include <bits/stdc++.h>
#include <iostream>
using namespace std;
bool fnc(vector<int> arr,int k){
unordered_map<int,int> mp;
for(int i=0;i<arr.size();i++){
if(mp.find(arr[i]) != mp.end() && i-mp[arr[i]]<=k){
return true;
}
mp[arr[i]]=i;
}
return false;
}
int main(){
vector<int> arr={1, 2, 2, 1, 2, 3};
int k=2;
if (fnc(arr, k)) {
cout << "There are two equal numbers within distance " << k << std::endl;
} else {
cout << "No two equal numbers found within distance " << k << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgpib29sIGZuYyh2ZWN0b3I8aW50PiBhcnIsaW50IGspewogICAgdW5vcmRlcmVkX21hcDxpbnQsaW50PiBtcDsKICAgIGZvcihpbnQgaT0wO2k8YXJyLnNpemUoKTtpKyspewogICAgICAgIGlmKG1wLmZpbmQoYXJyW2ldKSAhPSBtcC5lbmQoKSAmJiBpLW1wW2FycltpXV08PWspewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgbXBbYXJyW2ldXT1pOwogICAgfQogICAgCiAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgCiAgICAKICAgIAp9CgppbnQgbWFpbigpewogICAgdmVjdG9yPGludD4gYXJyPXsxLCAyLCAyLCAxLCAyLCAzfTsKICAgIGludCBrPTI7CiAgICBpZiAoZm5jKGFyciwgaykpIHsKICAgICAgICBjb3V0IDw8ICJUaGVyZSBhcmUgdHdvIGVxdWFsIG51bWJlcnMgd2l0aGluIGRpc3RhbmNlICIgPDwgayA8PCBzdGQ6OmVuZGw7CiAgICB9IGVsc2UgewogICAgICAgIGNvdXQgPDwgIk5vIHR3byBlcXVhbCBudW1iZXJzIGZvdW5kIHdpdGhpbiBkaXN0YW5jZSAiIDw8IGsgPDwgc3RkOjplbmRsOwogICAgfQogICAgcmV0dXJuIDA7CiAgICAKfQ==