#include "bits/stdc++.h" using namespace std; #define FOR(i,j,k) for(int (i)=(j);(i)<(int)(k);++(i)) #define rep(i,j) FOR(i,0,j) #define each(x,y) for(auto &(x):(y)) #define mp make_pair #define all(x) (x).begin(),(x).end() #define debug(x) cout<<#x<<": "<<(x)< pii; typedef vector vi; typedef vector vll; typedef vector> Intervals; Intervals mergeIntervals(Intervals a){ Intervals res; sort(all(a)); for(const auto & b: a){ if(res.size() == 0 || res.back().second < b.first) res.push_back(b); else res.back().second = max(res.back().second, b.second); } return res; } int main(){ int N, D, T; cin >> N >> D >> T; map ma; rep(i, N){ int X; scanf("%d", &X); ll l = X - (ll)D*T, r = X + (ll)D*T + 1; int mod = ((X%D) + D) % D; if(!ma.count(mod)){ ma[mod] = Intervals{mp(l,r)}; } else{ Intervals lrs = ma[mod]; lrs.push_back(mp(l, r)); ma[mod] = mergeIntervals(lrs); } } ll ans = 0; each(p, ma){ each(lr, p.second){ ll l = lr.first, r = lr.second; ans += (r - l) / D + 1; } } cout << ans << endl; }