import math
x, y, k, l = map(int, input().split())
if x > y:
x, y = y, x
s = math.ceil((x - l) / k) * k
e = math.floor((y + l) / k) * k
a = []
pos = s
while pos <= e:
a.append([pos - l, pos + l])
pos += k
a.sort()
m = []
for i in a:
if not m or m[-1][1] < i[0]:
m.append(i)
else:
m[-1][1] = max(m[-1][1], i[1])
u = []
p = x
for i in m:
s = max(i[0], x)
e = min(i[1], y)
if p < s:
u.append([p, s])
p = max(p, e)
if p < y:
u.append([p, y])
r = 0
for s, e in u:
r += math.ceil((e - s) / (2 * l))
print(r)
Каждый фонарь светит злево и вправо на l. Например, если фонарь стоит в точке 2, и 1 = 4, то фонарь освещает участок прямой от —2 до 6.
Петя не любит ходить по темным участкам проспекта. Он хочет разработать план установки дополнительных фонарей (с таким же параметром l), чтобы путь от дома до школы был полностью освещен. Помогите Пете и определите минимальное число фонарей, которое нужно добавить, чтобы путь от дома до школы был полностью освещен.
Путь от дома до школы называется освещенным, если каждая его точка освещена хотя бы одним фонарем.