#include #include #include #include int main() { using namespace std; long long n, d, t; cin >> n >> d >> t; map> mp; while (n--) { long long x; cin >> x; mp[(x % d + d) % d].push_back(x); } long long ans = 0; for (auto [val, vec] : mp) { sort(vec.begin(), vec.end()); long long left = vec[0] - d * t, right = vec[0] + d * t; for (long long e : vec) { if (right < e - d * t) { ans += (right - left) / d + 1; left = e - d * t; } right = e + d * t; } ans += (right - left) / d + 1; } cout << ans << endl; }