#include <bits/stdc++.h>
using namespace std;
bool fun(vector<int> nums, int k) {
unordered_map<int, int> mpp;
for (int i = 0; i < nums.size(); i++) {
if (mpp.find(nums[i]) != mpp.end()) {
int lastIndex = mpp[nums[i]];
int distance = i - lastIndex;
if (distance <= k)
return true;
}
mpp[nums[i]] = i;
}
return false;
}
int main() {
vector<int> nums = {1, 2, 2, 1, 2, 3};
int k = 2;
cout << fun(nums, k);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGZ1bih2ZWN0b3I8aW50PiBudW1zLCBpbnQgaykgewogICAgdW5vcmRlcmVkX21hcDxpbnQsIGludD4gbXBwOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtcy5zaXplKCk7IGkrKykgewoKICAgICAgICBpZiAobXBwLmZpbmQobnVtc1tpXSkgIT0gbXBwLmVuZCgpKSB7CiAgICAgICAgICAgIGludCBsYXN0SW5kZXggPSBtcHBbbnVtc1tpXV07CiAgICAgICAgICAgIGludCBkaXN0YW5jZSA9IGkgLSBsYXN0SW5kZXg7CgogICAgICAgICAgICBpZiAoZGlzdGFuY2UgPD0gaykKICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KCiAgICAgICAgbXBwW251bXNbaV1dID0gaTsKICAgIH0KCiAgICByZXR1cm4gZmFsc2U7Cn0KCmludCBtYWluKCkgewogICAgdmVjdG9yPGludD4gbnVtcyA9IHsxLCAyLCAyLCAxLCAyLCAzfTsKICAgIGludCBrID0gMjsKCiAgICBjb3V0IDw8IGZ1bihudW1zLCBrKTsKCiAgICByZXR1cm4gMDsKfQ==