Код:
def count_black_keys(L, R):
# Паттерн черных и белых клавиш в одной октаве (0 - белая, 1 - черная)
pattern = [0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0]
# Номер первой и последней клавиши в неполной октаве для L и R
start_octave = (L - 1) // 12
end_octave = (R - 1) // 12
# Количество целых октав между L и R
full_octaves = end_octave - start_octave - 1 if end_octave > start_octave else 0
# Считаем черные клавиши в полных октавах
black_keys_in_full_octaves = full_octaves * sum(pattern)
# Считаем черные клавиши в неполной первой октаве
start_key_in_pattern = (L - 1) % 12
end_key_in_pattern = (R - 1) % 12
if start_octave == end_octave:
# Если L и R находятся в одной октаве, считаем черные клавиши между ними
black_keys_in_partial_octave = sum(pattern[start_key_in_pattern:end_key_in_pattern + 1])
else:
# Считаем черные клавиши в первой неполной октаве
black_keys_in_start_octave = sum(pattern[start_key_in_pattern:])
# Считаем черные клавиши в последней неполной октаве
black_keys_in_end_octave = sum(pattern[:end_key_in_pattern + 1])
# Общее количество черных клавиш в неполных октавах
black_keys_in_partial_octave = black_keys_in_start_octave + black_keys_in_end_octave
# Возвращаем общее количество черных клавиш
return black_keys_in_full_octaves + black_keys_in_partial_octave
# Чтение входных данных
L, R = map(int, input().split())
# Вычисление и вывод результата
print(count_black_keys(L, R))
Б-Ч-Б-Ч-Б-Б-Ч-Б-Ч-Б-Ч-Б
где Б - белая клавиша, Ч - чёрная клавиша. Весь клавишный ряд пианино представляет собой подряд идущие целые октавы, первая октава начинается с первой клавиши (см. рисунок — зелёным выделена первая октава). Клавиши пианино пронумерованы подряд, начиная с первой (соответственно клавиши с 1 по 12 - это клавиши первой октавы, с 13 по 24 — клавиши второй и так далее). Основное отличие этого пианино от обычного земного пианино заключается в его гигантских размерах — в нём очень много клавиш, поэтому оно размещается в межзвездном космическом пространстве.
Жители далёкой-далёкой галактики очень любят своё гигантское космическое пианино. Но вот беда: прошёл метеоритный дождь и повредил часть клавишного ряда пианино, начинающуюся с клавиши номер L и заканчивая клавишей номер R (клавиши с номерами L и R тоже повреждены). Теперь жителям нужно отремонтировать пианино, и для этого они хотят понять: сколько им нужно изготовить черных клавиш взамен испорченных? Помогите им это вычислить.
Формат ввода
В единственной строке входных данных записаны через пробел два целых числа: L и R из условия задачи (1 ≤ L ≤ R ≤ 2⋅ 109).
Формат вывода
Требуется вывести единственное число — ответ в задаче.
Пример 1
Ввод
5 15
Вывод
4
Пример 2
Ввод
1 4
Вывод
2