#include <iostream>
#include <unordered_set>
bool hasDifferenceK(int arr[], int n, int k) {
std::unordered_set<int> seen;
for (int i = 0; i < n; ++i) {
int target1 = arr[i] - k;
int target2 = arr[i] + k;
if (seen.find(target1) != seen.end() || seen.find(target2) != seen.end())
return true;
seen.insert(arr[i]);
}
return false;
}
int main() {
int arr[] = {1, 5, 3, 2, 8, 4, 10};
int n = sizeof(arr) / sizeof(arr[0]);
int k = 2;
if (hasDifferenceK(arr, n, k))
std::cout << "Yes, there are two elements with a difference of " << k << std::endl;
else
std::cout << "No, there are no two elements with a difference of " << k << std::endl;
return 0;
}