fork download
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4. #include <queue>
  5. #include <unordered_set>
  6. #include <map>
  7. #include <utility>
  8. #include <set>
  9. #include <unordered_map>
  10. #include <climits>
  11. #include <cmath>
  12. #include <stack>
  13. #include <string>
  14. using namespace std ;
  15. #define ll long long int
  16. #define IOS ios::sync_with_stdio(false) ; cin.tie(0) ; cout.tie()
  17. #define MOD 1000000007
  18. int arr[100005] ;
  19. //ll n ;
  20.  
  21.  
  22. int main(){
  23. IOS;
  24. ll n ,x , k;
  25. cin>>n>>x>>k ;
  26. for(ll i = 0 ; i< n ; ++i)
  27. {
  28. cin>>arr[i];
  29. }
  30. sort(arr , arr + n ) ;
  31.  
  32. ll ans = 0 ;
  33. ll modulo[n] ;
  34. for(int i = 0 ; i< n ; ++i)
  35. {
  36. modulo[i] = arr[i] / x ;
  37. }
  38.  
  39. for(int i = 0 ; i< n ;++i)
  40. {
  41. if(arr[i] % x != 0){
  42. auto k1 = lower_bound(modulo , modulo + n , modulo[i] + k) ;
  43. auto k2 = upper_bound(modulo , modulo + n , modulo[i] + k) ;
  44. ans += (k2 - k1 );
  45.  
  46. }
  47. else
  48. {
  49. auto k1 = lower_bound(modulo , modulo + n , modulo[i] + k -1) ;
  50. auto k2 = upper_bound(modulo , modulo + n , modulo[i] + k -1) ;
  51. ans += (k2 - k1) ;
  52.  
  53.  
  54. }
  55. }
  56.  
  57.  
  58. cout<<ans ;
  59.  
  60. return 0 ;
  61. }
Success #stdin #stdout 0s 15632KB
stdin
Standard input is empty
stdout
Standard output is empty