using System; using System.Collections.Generic; using System.Linq; using System.Collections; using System.Linq.Expressions; static class Program { static void Main() { new Magatro().Solve(); } } class Magatro { private int N, D, T; private int[] X; private void Scan() { var line = Console.ReadLine().Split(' '); N = int.Parse(line[0]); D = int.Parse(line[1]); T = int.Parse(line[2]); X = Console.ReadLine().Split(' ').Select(int.Parse).ToArray(); } public void Solve() { Scan(); Array.Sort(X); long ans = N; for (int i = 0; i < N; i++) { bool flag = false; for (int j = i - 1; j >= 0; j--) { if ((X[i] - X[j]) % D == 0) { int f = (X[i] - X[j]) / D; if (f / 2 <= T) { ans += f - 1; flag = true; break; } } } if (!flag) { ans += T; } flag = false; for(int j = i + 1; j < N; j++) { if ((X[j] - X[i]) % D == 0) { int f = (X[j] - X[i]) / D; if (f / 2 <= T) { flag = true; break; } } } if (!flag) { ans += T; } } Console.WriteLine(ans); } }