Обозначим количество биатлонистов, финишировавших раньше Дениса, как \( x \), а количество тех, кто финишировал после него, как \( y \).
Согласно условию, имеем:
\[
x = 4y
\]
Кроме того, обозначим количество биатлонистов, финишировавших раньше Кирилла, как \( z \) и количество тех, кто финишировал после него, как \( w \). Тогда по условию задачи:
\[
z = \frac{1}{8} w
\]
С учетом того, что Денис и Кирилл финишируют в разное время, можно найти общее количество биатлонистов \( N \): \[ N = x + 1 + y \quad \text{(где 1 - это Денис)} \] \[ N = z + 1 + w \quad \text{(где 1 - это Кирилл)} \]
Теперь выразим \( N \) через \( y \): \[ N = 4y + 1 + y = 5y + 1 \]
И выразим \( N \) через \( w \): \[ N = \frac{1}{8}w + 1 + w = \frac{1}{8}w + 1 + \frac{8}{8}w = \frac{9}{8}w + 1 \]
Приравняем оба выражения для \( N \): \[ 5y + 1 = \frac{9}{8}w + 1 \] Упрощаем: \[ 5y = \frac{9}{8}w \]
Умножим обе стороны на 8, чтобы избавиться от дробей: \[ 40y = 9w \] Отсюда \[ w = \frac{40}{9}y \]
Так как \( w \) должно быть целым числом, \( y \) должно быть кратно 9. Пусть \( y = 9k \) для некоторого целого \( k \): \[ w = \frac{40}{9} \cdot 9k = 40k \]
Теперь подставим \( y = 9k \) в выражение для \( N \): \[ N = 5(9k) + 1 = 45k + 1 \]
Теперь подставим \( w = 40k \) в выражение для \( N \): \[ N = \frac{9}{8}(40k) + 1 = \frac{360k}{8} + 1 = 45k + 1 \]
Таким образом, оба выражения для \( N \) совпадают. Теперь выясним минимальное значение \( k \). При \( k = 1 \): \[ N = 45 \cdot 1 + 1 = 46 \]
Итак, наименьшее количество спортсменов, которое могло участвовать в гонке, равно \( \boxed{46} \).