ООП это инструмент. Если без него можно обойтись, То почему бы и нет? Нельзя забывать что ООП появился как инструмент борьбы со сложностью больших проектов. Для маленьких программ он не всегда и нужен.
Если заранее считать сумму весов и передавать ее в функцию как параметр, то можно улучшить эффективность до O(n*k), так как считать сумму весов не надо и мы избавляемся от одного N. Вот бы еще придумать как сделать требование по памяти O(1) и функция бы считала за O(n*k) с подсчетом суммы весов!
Транслятор может быть написан на любом языке. Это программа, принимающая на вход последовательность знаков, записанную на одном формальном языке и преобразующая ее в другую последовательность, записанную на другом формальном языке. Сам процесс состоит из нескольких этапов:
1. Распознавание кодировки исходного кода и преобразование во внутреннюю кодировку транслятора.
2. Лексический анализ. Происходит разбивка исходного кода на лексемы - отдельные слова исходного языка. Затем каждому слову назначается внутренний числовой код и такая последовательность кодов передается дальше.
3. Синтаксический анализ. На основе предыдущей последовательности происходит проверка синтаксической правильности исходной программы. Также строится синтаксическое дерево разбора.
4. Семантический анализ. Происходит проверка смысловой правильности исходной программы. Совпадают ли типы данных формальных параметров функций и переданных переменных и т.д.
5. Генерация промежуточного кода. Когда программа проверена можно начинать генерировать промежуточный код который нужен для оптимизации.
6. Оптимизация промежуточного кода.
7. Генерация целевого кода из промежуточного (например из промежуточного в машинный код определенного процессора, или в байт-код виртуальной машины).
@worlxxaker: Можно и с com. Главное чтобы имя пакета было уникальным. Обычно называют с помощью перевёрнутого доменного имени. Только не com.example... - не примут. Представьте что регистрируете новый домен. Например asdfg.com, Теперь переворачиваем и у нас имя пакета - com.asdfg
Значит, все-таки мультик надо сделать. Тогда попробуйте Blender. Там можно полностью сделать модель солнечной системы. Все это анимировать и сделать видео. Можно даже сделать интерактивную сцену(с которой можно взаимодействовать). Но для этого надо подучить Python. Вот ссылка на редактор - blender.org. И на начальный курс. Его должно хватить для твоей задачи. - blender3d.com.ua/blender-basics
Можно выделить вершину и нажать Ctrl + LMB, но это создаст новую вершину без привязки к ребру (кстати, так можно создавать и новые ребра с гранями). А если надо чтобы именно на ребре... другого способа не знаю. Есть вот такое сообщество vk.com/blender3dcomua поспрашивай там. Но это, правда, без гарантий.