Допустим, существует произвольный набор окружностей с разными радиусами.

Нужно распределить эти круги следующим образом:

Уверен, что прежде всего нужно найти R, но не знаете, как это сделать?
ОБНОВЛЕНИЕ: Теоретически, эту проблему можно решить с помощью простой "грубой силы", установив радиус внутреннего круга наименьшим и увеличивая его шаг за шагом, пока все круги будут соответствовать окружности.
Но это последнее средство, надеюсь, есть более элегантный способ сделать это.