Предмет: Информатика,
автор: igormehed1
СРОЧНО ОЛИМПИАДА, НАПИСАТЬ КОД НА ПИТОН3 ИЛИ С++ ИЛИ ДЖАВА
Приложения:


Ответы
Автор ответа:
0
Ответ:
Смотри код в объяснении.
Объяснение:
N = int(input())
M = 1537
n = N - 1
l = -1
r = n
while l < r - 1:
m = (l + r) // 2
if n - 5 * m < M:
r = m
else:
l = m
s = r
n -= 5 * s
dist = [0] + [-1] * M
jumps = [3,4,5]
q = [0]
while q:
d = q.pop()
for i in range(3):
if d + jumps[i] < M and dist[d + jumps[i]] == -1:
dist[d + jumps[i]] = dist[d] + 1
q.append(d + jumps[i])
print(-1 if dist[n] == -1 else s + dist[n])
Похожие вопросы
Предмет: Алгебра,
автор: vladik817
Предмет: Химия,
автор: booming6412
Предмет: Английский язык,
автор: urcenkovlad796
Предмет: Английский язык,
автор: mamama145g