#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;
bool hasNearbyDuplicate(const vector<int>& a, int k) {
unordered_map<int,int> last;
for (int i = 0; i < (int)a.size(); ++i) {
auto it = last.find(a[i]);
if (it != last.end() && i - it->second <= k) return true;
last[a[i]] = i;
}
return false;
}
int main() {
vector<int> arr = {1,2,3,1,5};
int k = 3;
cout << (hasNearbyDuplicate(arr, k) ? "Yes" : "No") << "\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPiAKI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CiNpbmNsdWRlIDx2ZWN0b3I+CgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmJvb2wgaGFzTmVhcmJ5RHVwbGljYXRlKGNvbnN0IHZlY3RvcjxpbnQ+JiBhLCBpbnQgaykgewogICAgdW5vcmRlcmVkX21hcDxpbnQsaW50PiBsYXN0OyAKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKGludClhLnNpemUoKTsgKytpKSB7CiAgICAgICAgYXV0byBpdCA9IGxhc3QuZmluZChhW2ldKTsKICAgICAgICBpZiAoaXQgIT0gbGFzdC5lbmQoKSAmJiBpIC0gaXQtPnNlY29uZCA8PSBrKSByZXR1cm4gdHJ1ZTsKICAgICAgICBsYXN0W2FbaV1dID0gaTsKICAgIH0KICAgIHJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKSB7CiAgICB2ZWN0b3I8aW50PiBhcnIgPSB7MSwyLDMsMSw1fTsKICAgIGludCBrID0gMzsKICAgIGNvdXQgPDwgKGhhc05lYXJieUR1cGxpY2F0ZShhcnIsIGspID8gIlllcyIgOiAiTm8iKSA8PCAiXG4iOwp9Cg==