#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define mp make_pair #define mt make_tuple #define pb push_back #define rep(i, n) for (int i = 0; i < (n); i++) using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair pii; const int INF = 1 << 29; const double EPS = 1e-9; const int dx[] = {1, 0, -1, 0}, dy[] = {0, -1, 0, 1}; ll N, D, T; vector pos; int main() { cin >> N >> D >> T; pos.resize(N); ll res = 0; for (int i = 0; i < N; i++) { cin >> pos[i]; } sort(pos.begin(), pos.end()); for (int i = 0; i < N; i++) { ll p = pos[i]; bool ok = false; for (int j = i + 1; j < N; j++) { ll q = pos[j]; ll d = q - p; if (d % D == 0) { res += d / D; ok = true; break; } } if (!ok) { res += (T + 1); } } reverse(pos.begin(), pos.end()); for (int i = 0; i < N; i++) { bool ok = false; for (int j = i + 1; j < N; j++) { ll d = abs(pos[j] - pos[i]); if (d % D == 0){ ok = true; break; } } if (!ok){ res += T; } } cout << res << endl; return 0; }