fork download
  1. //{ Driver Code Starts
  2. #include<bits/stdc++.h>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. bool findPair(int arr[], int size, int n);
  8.  
  9. int main()
  10. {
  11. int t;
  12. cin>>t;
  13. while(t--)
  14. {
  15. int l,n;
  16. cin>>l>>n;
  17. int arr[l];
  18. for(int i=0;i<l;i++)
  19. cin>>arr[i];
  20. if(findPair(arr, l, n))
  21. cout<<1<<endl;
  22. else cout<<"-1"<<endl;
  23. }
  24.  
  25.  
  26. return 0;
  27. }
  28. // } Driver Code Ends
  29.  
  30.  
  31. bool findPair(int arr[], int size, int n){
  32. //code
  33. unordered_map<int, int> m;
  34. for(auto i = 0; i < size; ++i){
  35. ++m[arr[i]];
  36. if(n == 0 && m[arr[i]] > 1) return true;
  37. }
  38. if(n == 0) return false;
  39. sort(arr, arr + size);
  40. for(auto i = 0; i < size; ++i){
  41. int begin{0}, end{size - 1}, temp{arr[i] + n};
  42. while(begin <= end){
  43. auto mid = begin + (end - begin) / 2;
  44. if(arr[mid] == temp) return true;
  45. else if(arr[mid] < temp){
  46. begin = mid + 1;
  47. }else end = mid - 1;
  48. }
  49. }
  50. return false;
  51.  
  52. }
Success #stdin #stdout 0.01s 5316KB
stdin
1
6 78
5 20 3 2 5 80
stdout
1