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