#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1e5;
int n, x, k;
int a[NMAX + 2];
long long ans;
int ndiv(int f, int l) { return l / x - (f - 1) / x; }
pair<int, int> bs(int arg) {
  pair<int, int> last;
  int st = arg, dr = n;
  last.first = last.second = -1;
  while (st <= dr) {
    int med = (st + dr) / 2;
    if (ndiv(a[arg], a[med]) >= k) {
      dr = med - 1;
      last.first = med;
    } else
      st = med + 1;
  }
  st = arg, dr = n;
  while (st <= dr) {
    int med = (st + dr) / 2;
    if (ndiv(a[arg], a[med]) > k)
      dr = med - 1;
    else {
      st = med + 1;
      last.second = med;
    }
  }
  return last;
}
int main() {
  cin >> n >> x >> k;
  for (int i = 1; i <= n; i++) cin >> a[i];
  sort(a + 1, a + n + 1);
  int nr;
  for (int i = 1; i <= n; i++) {
    if (a[i] != a[i - 1]) {
      pair<int, int> pos = bs(i);
      if (pos.first != -1 && pos.second != -1)
        nr = pos.second - pos.first + 1;
      else
        nr = 0;
    }
    ans += 1LL * nr;
  }
  cout << ans << '\n';
  return 0;
}
