#include <bits/stdc++.h>
using namespace std;
bool checkDuplicatesWithinK(int arr[], int n, int k)
{
// Creates an empty unordered map
unordered_map<int,int> umap;
for(int i=0; i<n; i++)// start traversing the array from left to right
{
if (umap.find(arr[i]) == umap.end())// if the element is not present in map then insert it
{
umap[arr[i]] = i;
}
else // if it is already present then check the condition
{
if(i-umap[arr[i]] <= k)
{return true;// if duplicate present within a distance k
}
umap[arr[i]] = i;
}
}
return false;// if the duplicate is not present
}
int main() {
int arr[] = {10, 5, 3, 4, 3, 5, 6};
int n = sizeof(arr) / sizeof(arr[0]);
if (checkDuplicatesWithinK(arr, n, 3))
cout << "Yes";
else
cout << "No";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBjaGVja0R1cGxpY2F0ZXNXaXRoaW5LKGludCBhcnJbXSwgaW50IG4sIGludCBrKQp7CiAgICAvLyBDcmVhdGVzIGFuIGVtcHR5IHVub3JkZXJlZCBtYXAKICAgICB1bm9yZGVyZWRfbWFwPGludCxpbnQ+IHVtYXA7CiAKIAogZm9yKGludCBpPTA7IGk8bjsgaSsrKS8vIHN0YXJ0IHRyYXZlcnNpbmcgIHRoZSBhcnJheSBmcm9tIGxlZnQgdG8gcmlnaHQKIHsKICAgICBpZiAodW1hcC5maW5kKGFycltpXSkgPT0gdW1hcC5lbmQoKSkvLyBpZiB0aGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBpbiBtYXAgdGhlbiBpbnNlcnQgaXQKICAgICAgICB7CiAgICAgICAgICAgICAgdW1hcFthcnJbaV1dID0gaTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZWxzZSAgICAgIC8vIGlmIGl0IGlzIGFscmVhZHkgcHJlc2VudCB0aGVuIGNoZWNrIHRoZSBjb25kaXRpb24gCiAgICAgICAgewogICAgICAgICAgICBpZihpLXVtYXBbYXJyW2ldXSA8PSBrKQogICAgICAgICAgICB7cmV0dXJuIHRydWU7Ly8gaWYgZHVwbGljYXRlIHByZXNlbnQgd2l0aGluIGEgZGlzdGFuY2UgawogICAgICAgICAgICB9CiAgICAgICAgICAgICAgdW1hcFthcnJbaV1dID0gaTsKICAgICAgICB9CiB9CiAgIAogICAgCiAgICByZXR1cm4gZmFsc2U7Ly8gaWYgdGhlIGR1cGxpY2F0ZSBpcyBub3QgcHJlc2VudAp9CgppbnQgbWFpbigpIHsKICAgIGludCBhcnJbXSA9IHsxMCwgNSwgMywgNCwgMywgNSwgNn07CiAgICBpbnQgbiA9IHNpemVvZihhcnIpIC8gc2l6ZW9mKGFyclswXSk7CiAgICBpZiAoY2hlY2tEdXBsaWNhdGVzV2l0aGluSyhhcnIsIG4sIDMpKQogICAgICAgIGNvdXQgPDwgIlllcyI7CiAgICBlbHNlCiAgICAgICAgY291dCA8PCAiTm8iOwp9