#include #include #include #include int main() { int N, D, T; const int INF = 1e9; std::cin >> N >> D >> T; std::unordered_map> line; std::vector X(N); for (int i = 0; i < N; i++) { int x; std::cin >> x; x += INF; X.at(i) = x; } for (const auto &x: X) { int mod = x % D; line[mod].push_back(x / D); } int ans = 0; for (auto &[k, v]: line) { std::sort(v.begin(), v.end()); ans += 2 * T + 1; for (int i = 0; i < v.size() - 1; i++) { ans += v.at(i + 1) + T - std::max({v.at(i + 1) - T - 1, v.at(i) + T}); } } std::cout << ans << std::endl; }