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