#include #include #include #include int main() { int N, D, T; std::cin >> N >> D >> T; std::unordered_map> line; std::vector X(N); for (int i = 0; i < N; i++) { std::cin >> X.at(i); } for (const auto &x: X) { line[x % D].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; }