fork download
  1. /*
  2. *DIV 2 C.
  3. *LINK:
  4. *nilabja10201992
  5. */
  6. #include <bits/stdc++.h>
  7. using namespace std;
  8.  
  9. #define inf (1<<30)
  10. #define INF (int)1e9
  11. #define EPS 1e-9
  12. #define PI 3.1415926535897932384626433832795
  13. #define MOD 1000000007
  14. #define MAX 1000000
  15.  
  16. int n,k;
  17. int arr[MAX];
  18. int bsearch(int a,int i){
  19. int l=i;
  20. int r=n-1;
  21. int cnt=0;
  22. while(l<=r){
  23. int m=(l+r)/2;
  24. if(abs(arr[m]-a)==k)
  25. cnt++;
  26. if(abs(arr[m]-a)>=k)
  27. r=m-1;
  28. else if(abs(arr[m]-a)<k)
  29. l=m+1;
  30. }
  31. l=0;
  32. r=i;
  33. while(l<=r){
  34. int m=(l+r)/2;
  35. if(abs(arr[m]-a)==k)
  36. cnt++;
  37. if(abs(arr[m]-a)>=k)
  38. l=m+1;
  39. else if(abs(arr[m]-a)<k)
  40. r=m-1;
  41. }
  42. return cnt;
  43. }
  44. int main() {
  45. ios_base::sync_with_stdio(false);
  46. cin.tie(NULL);
  47. cin>>n>>k;
  48. for(int i=0;i<n;i++)
  49. cin>>arr[i];
  50. sort(arr,arr+n);
  51. int ans=0;
  52. for(int i=0;i<n;i++){
  53. int a=arr[i];
  54. ans+=bsearch(arr[i],i);
  55. }
  56. cout<<ans/2<<endl;
  57. //cout<<"Execution time : "<<tick();
  58. return 0;
  59. }
  60.  
Success #stdin #stdout 0s 19144KB
stdin
Standard input is empty
stdout
0