- -
- 100%
- +

ПРЕАМБУЛА. О времени и месте
История «Чертога» начинается в 2026 году в мире, который почти не отличается от нашего. Советский Союз давно распался. Россия живёт рыночной экономикой: частные проектные фирмы ищут заказы, стартапы — инвесторов, корпорации считают окупаемость, банки выдают кредиты, государство проводит закупки. Ярослав Берестов не строит государственную машину и не работает на новый Госплан. Он пытается сделать программу, за которую кто-нибудь согласится заплатить.
Дальше проходит больше полувека. За это время меняются технологии, экономика и сама политическая карта. Серия кризисов и последующих интеграционных процессов постепенно связывает часть постсоветского пространства в новое союзное государство. Позднее его назовут Вторым Союзом — сначала полуиронично, затем уже без кавычек.
Это не СССР, чудом переживший 1991 год, и не точная реставрация старого строя. Новое государство многое придумывает заново, кое-что заимствует у прошлого, а старые названия возвращает заметно быстрее старых порядков. Иногда из идеологии. Иногда из привычки. А иногда потому, что слово «Госплан» всё-таки короче, чем «Государственное агентство межотраслевого ресурсного согласования».
К тому моменту Чертог уже давно перестаёт быть маленьким частным проектом. Он проходит путь от коммерческого продукта до отраслевой инфраструктуры раньше, чем новая государственная система замечает, насколько удобно положить на него собственное планирование.
Как именно возник Второй Союз, эта хроника рассказывает лишь краем. Берестов не политик. Большая история приходит к нему так, как она обычно приходит к инженерам: новым заказчиком, новым стандартом, переименованным ведомством, ещё одним обязательным полем в форме и письмом с пометкой «в связи с реорганизацией».
Главная история всё равно начинается с дома на восемьдесят квадратных метров.
ПРОЛОГ. Объект № 1
Москва, 2087 год
Когда лифт прошёл отметку минус сто метров, связь с обычной городской сетью исчезла.
Лев Беляков заметил это не по индикатору на браслете. Индикатор продолжал показывать полный уровень сигнала: собственная сеть комплекса подхватила соединение незаметно, как подхватывала всё остальное. Просто на секунду пропал привычный поток внешних уведомлений, и в кабине стало непривычно тихо.
На отметке минус сто сорок семь метров двери разошлись.
За ними был коридор, облицованный старым серым камнем. Ни голографической навигации, ни рекламных панелей, ни прозрачных стен. Только металлические двери, матовые светильники и табличка с надписью:
ЗАЛ ИСТОРИИ ПЕРВОЙ ЕДИНОЙ СИСТЕМЫ ИНЖЕНЕРНОГО СИНТЕЗА
Слово «истории» здесь звучало почти насмешкой. На другом конце комплекса работали вычислительные поля, которые каждую секунду принимали решения по тысячам действующих проектов. На поверхности строились города, прокладывались магистрали, менялись производственные программы заводов. На орбите готовили к пуску второй промышленный узел дальнего цикла. Но истоком всего этого официально считалась маленькая комната под бывшим зданием Госстроя, где хранили несколько предметов начала века.
Лев показал пропуск охране и вошёл.
В зале было пусто. У дальней витрины стоял пожилой мужчина в тёмном костюме без знаков должности. Он опирался обеими руками на трость и смотрел на предметы за стеклом.
Лев узнал его не сразу.
В учебниках Ярослав Андреевич Берестов почти всегда был моложе. В сорок лет — на фотографии первой промышленной конференции. В пятьдесят — рядом с руководителями трёх крупнейших инженерных объединений. В шестьдесят — на ступенях Академии наук после подписания закона о Едином контуре. Поздние фотографии публиковались редко, а живой человек тем более не обязан был походить на собственный памятник.
— Ярослав Андреевич?
Старик обернулся.
— Беляков?
— Да. Группа исторической совместимости.
— Название у вас хуже, чем у нас когда-то были.
Лев не понял, шутит он или нет.
Лев сделал шаг к витрине. Под потолком мягко загорелся индикатор, и безупречно поставленный женский голос сообщил:
«Перед вами — личные вычислительные средства Ярослава Андреевича Берестова, основателя Первой Единой Системы инженерного синтеза. С юных лет он стремился поставить инженерную мысль на службу обществу...»
— Нет, — сказал Берестов.
Лев остановился.
— Простите?
— Выключите это.
Аудиогид продолжал с тем ровным достоинством, которое появляется у голоса, когда текст писал человек, никогда не встречавший объект собственной биографии:
«Неутомимое стремление к научному поиску сочеталось в нём с глубокой социальной ответственностью и редкой способностью видеть будущее...»
— Я буду судиться, — сказал Берестов.
— С музеем?
— С биографией.
Лев провёл ладонью перед светящимся значком. Голос не остановился.
— Здесь нет кнопки, — сказал он. — Экскурсия управляется жестами.
— Вот оно, настоящее падение цивилизации.
Лев повторил жест медленнее.
ОСТАНОВКА ВОСПРОИЗВЕДЕНИЯ ДОСТУПНА ПОСЛЕ ЗАВЕРШЕНИЯ СМЫСЛОВОГО БЛОКА
«Именно Берестов первым осознал необходимость создания универсальной интеллектуальной среды, способной преобразить саму природу инженерного труда...»
— Я первым осознал, что у меня не хватает людей и денег, — сказал Берестов. — Это несколько менее монументально.
Лев открыл служебную панель на браслете, нашёл административное управление экспозицией и остановил запись.
В зале стало тихо.
— Спасибо. И запомните, Беляков: если живого человека начинают описывать словами «с юных лет», кто-то уже готовит преступление против фактов.
— Текст согласовывали с вашим аппаратом.
— Вот именно.
На витрине лежали три предмета: толстая видеокарта с тремя вентиляторами, пожелтевшая механическая клавиатура и чёрный накопитель размером с ладонь. На накопителе сохранилась выцветшая наклейка:
CHERTOG-ALPHA
guest-house-80m2
— Это он? — спросил Лев.
— Один из них. Было несколько копий.
— Нам сказали, что на носителе сохранился полный снимок проекта.
— Почти полный. Исходники, база, несколько ранних моделей, запись демонстрации. Часть зависимостей пришлось восстанавливать отдельно. В те годы было модно строить программы так, чтобы через пять лет их нельзя было запустить без археологической экспедиции.
Лев улыбнулся, но быстро снова посмотрел на накопитель.
Через три дня этот маленький кусок пластика собирались подключить к изолированному контуру и выполнить первую полную реконструкцию поведения Чертога образца 2026 года. Не ради праздника. Перед запуском межпланетной промышленной программы Совет требовал доказать непрерывность архитектуры системы: от самой ранней версии до государственного контура. Историки хотели красивую церемонию. Инженеры — контрольную точку, на которой можно было увидеть, какие решения были заложены ещё в самом начале.
— Я читал документацию, — сказал Лев. — Но не понимаю одной вещи.
— Это нормально. Мы тоже не понимали половины документации. Обычно той половины, которую писали сами.
— Почему дом?
Берестов посмотрел на него внимательнее.
— Какой дом?
Лев указал на наклейку.
— Восемьдесят квадратных метров. Для одного человека с гостями. Это первый сохранённый сценарий. Почему вы начали именно с него?
— Потому что он был достаточно простой, чтобы всё сломалось не сразу.
— Простите?
— Если бы мы начали с больницы или завода, первая версия утонула бы в требованиях. Мне нужен был объект, который я сам мог быстро проверить головой. Маленький жилой дом. Санузел. Котельная. Постирочная. Кухня-гостиная. Две спальни. Терраса.
— И система построила его?
— Нет. Теперь уже суеверие.
— Но в архиве сказано…
— В архиве любят сокращать.
Берестов сделал несколько шагов к скамье и сел.
— Первая версия не умела строить дом. Она училась понимать, что значит «построить дом». Это разные задачи.
За стеной глухо прошла вибрация. Где-то в глубине комплекса включился резервный охлаждающий контур.
Лев вспомнил вид центрального зала, через который его провели час назад. Сотни рядов оборудования. Световые полосы на полу. Сервисные роботы. На огромном экране — сухая статистика:
ИГГДРА / ГОСУДАРСТВЕННЫЙ КОНТУР
АКТИВНЫХ АГЕНТОВ: 184 721
ПРОЕКТОВ В РАБОТЕ: 37 406
Чертог давно не был программой в обычном смысле. Скорее инфраструктурой мышления, наложенной на промышленность.
— Когда вы поняли, чем это станет? — спросил Лев.
Берестов усмехнулся.
— Никогда.
— Никогда?
— Есть ложная картинка истории. Будто кто-то в нужный момент встаёт у доски, рисует стрелку в будущее и говорит: «Вот туда мы идём». На деле ты неделю споришь, почему спальня не связана с коридором. Потом пытаешься заставить модель не врать про норматив. Потом оказывается, что ей нужен расчёт конструкций. Потом — инженерные сети. Потом — смета. А через двадцать лет тебе приносят постановление о распределении металлургических мощностей и спрашивают, почему твоя программа заблокировала алюминий для трёх республик.
Лев молчал.
— И в какой момент это перестало быть программой для проектировщиков?
— Есть одна версия.
— Какая?
— Кто-то задал очень плохой вопрос.
— Какой?
Берестов посмотрел на старый накопитель.
— «А почему система проектирует только здания?»
Он поднялся.
— Но до этого ещё далеко. Сначала был дом.
Старик провёл пальцем по стеклу витрины.
— Дом, которого не существовало.
ЧАСТЬ I. ДОМ
ГЛАВА 1. Пустой лист
Сахалин, 2026 год
Дождь шёл с самого утра и к полуночи не изменился ни на каплю.
Он не лил стеной и не бил по окнам. Просто висел в воздухе — мелкий, плотный, бесконечный, превращая свет фонарей в мутные жёлтые пятна. За стеклом темнела улица. На мониторе светился пустой проект.
Ярослав Берестов смотрел на него уже минут десять.
Пустой проект был полезной вещью. В нём ещё не было чужих ошибок, конфликтов разделов, забытых отверстий, нестыкующихся отметок и заказчика, который «только сейчас вспомнил» важное требование. Пустой проект никому не противоречил.
Проблема была в том, что он ничего не делал.
На втором мониторе было открыто окно Чертога. Техническая альфа выглядела хуже, чем должна была выглядеть программа, которую хотелось показывать инвесторам, и лучше, чем выглядела неделю назад. Слева — список документов проекта. Справа — область диалога. Где-то между ними жили блоки, состояние задачи, экспериментальная память и несколько агентов, о существовании которых пользователь пока не обязан был знать.
Ярослав набрал:
«Нужна планировка дома для постоянного проживания одного человека с возможностью размещения гостей. Ориентировочная площадь — около 80 м². Совмещённый санузел, котельная, отдельная постирочная, кухня-гостиная с компактной зоной приготовления пищи, мастер-спальня, гостевая спальня, терраса шириной до трёх метров».
Нажал Enter.
На несколько секунд возник индикатор обработки.
Потом Чертог ответил:
«Я обновил техническое задание и проверил достаточность данных. Для начала анализа нужен один критичный факт».
Ярослав подождал.
Появился вопрос:
«Кто будет пользоваться объектом и какие повседневные сценарии необходимо учитывать?»
Он откинулся на спинку кресла.
— Ты издеваешься?
В комнате никто не ответил.
Ярослав перечитал собственный запрос. «Для постоянного проживания одного человека с возможностью размещения гостей». Не идеальное описание сценария, но уж точно не отсутствие данных.
Он открыл журнал состояния.
Проблема была не в модели. Модель увидела информацию. Проблема была в оркестраторе: тот прогнал обязательный список критических вопросов, не проверив, закрыт ли пункт уже сказанным пользователем.
То есть система не ошиблась в ответе.
Система ошиблась в процессе.
Именно это раздражало сильнее.
Обычный чат можно было простить за глупый вопрос. Он ничего не обещал. Чертог обещал больше — пусть пока только самому себе.
Ярослав открыл редактор кода, нашёл блок проверки полноты исходных данных и несколько минут смотрел на него, не трогая клавиатуру.
Программистом он себя не считал. Проектировщиком — да. Человеком, который за последние месяцы выучил слишком много слов вроде «оркестрация», «контекстный срез», «типизированная транзакция» и «граф состояния» исключительно потому, что иначе нужная программа не появится, — тоже да.
Сначала идея казалась проще.
Берёшь большую языковую модель. Даёшь ей нормативы. Подключаешь к BIM. Просишь проектировать.
Потом выясняется, что «проектировать» — это не действие.
Это сотни действий, большая часть которых плохо названа, не формализована и существует в голове специалиста как привычка.
Архитектор не просто рисует стену. Он принимает решение, почему стена должна быть здесь, какие помещения она разделяет, что произойдёт со светом, проходом, мебелью, конструкцией, инженерными сетями, площадью, стоимостью и нормативами. Иногда — за секунду. Иногда — после двух дней споров.
Если дать модели кнопку «нарисовать стену», получится говорящий плоттер.
Ярослав хотел другого.
Он хотел, чтобы система видела задачу до стены.
На экране мигнул мессенджер.
Антон Савельев, один из разработчиков, прислал сообщение:
«Не трогай requirements-check до утра. Я там рефакторю ветку».
Ярослав посмотрел на время: 00:43.
Написал:
«Поздно».
Через полминуты пришёл ответ:
«Сволочь».
«Она снова спросила, кто живёт в доме».
Пауза.
«Ты же написал?»
«В первой строке».
Ещё пауза.
«Ладно. Трогай».
Ярослав улыбнулся.
Через двадцать минут проверка полноты стала чуть менее тупой. Ещё через десять сервис снова поднялся.
Он повторил исходный запрос.
На этот раз система ответила иначе:
«Исходная программа помещений принята. Для пространственного анализа недостаточно данных об участке и посадке здания. Уточните конфигурацию участка, рельеф и предпочтительное направление входа».
— Уже лучше.
Он написал:
«Участок условный, ровный. Пятно примерно восемь на десять метров. Въезд и подход с севера. Дом одноэтажный. Добавь компактную прихожую и небольшой распределительный коридор. Терраса со стороны кухни-гостиной».
Теперь система думала дольше.
В журнале прошли события:
REQUIREMENTS: UPDATED
PROGRAM: 8 SPACES
CONSTRAINTS: 12
MISSING_CRITICAL: 0
SPATIAL_ANALYSIS: RUNNING
Чертог не рисовал.
Сначала он построил список помещений. Затем — связи.
ПРИХОЖАЯ → КОРИДОР
КОРИДОР → МАСТЕР-СПАЛЬНЯ
КОРИДОР → ГОСТЕВАЯ
КОРИДОР → САНУЗЕЛ
КУХНЯ-ГОСТИНАЯ → ТЕРРАСА
КУХНЯ-ГОСТИНАЯ → КОТЕЛЬНАЯ
САНУЗЕЛ → ПОСТИРОЧНАЯ
Ярослав нахмурился.
Кухня-гостиная в списке была.
Но связи с коридором у неё не было.
То есть система успешно предусмотрела помещение, в котором человек мог готовить, есть, принимать гостей и выходить на террасу. Попасть туда человек не мог.
Он сделал скриншот и отправил Антону.
«Первый дом Чертога. Кухня есть. Входа нет».
Ответ пришёл почти сразу:
«Минимализм».
«Премиум. Для людей, которые не едят».
Через несколько секунд:
«Можно назвать вариант “Интервальное голодание”».
Ярослав всё-таки рассмеялся. Ночью любая архитектурная ошибка после часа отладки постепенно становилась либо философией, либо названием продукта.
Он набрал в Чертоге:
«Обеспечь доступ в кухню-гостиную от главного входа».
Система перестроила граф.
МАРШРУТ ДОСТУПА СОЗДАН
ПРИХОЖАЯ → КОРИДОР → САНУЗЕЛ → ПОСТИРОЧНАЯ → КУХНЯ-ГОСТИНАЯ
Ярослав несколько секунд смотрел на маршрут.
Потом написал Антону:
«Исправил».
«Нормально?»
«Теперь гости идут на кухню через санузел и постирочную».
«Зато моют руки».
Ярослав вернулся к системе.
«Транзит через санузел и постирочную недопустим».
Чертог принял новое ограничение.
МАРШРУТ ПЕРЕСЧИТАН
ПРИХОЖАЯ → КОРИДОР → КОТЕЛЬНАЯ → КУХНЯ-ГОСТИНАЯ
— Конечно, — сказал Ярослав вслух. — Гости любят котельные.
«Транзит через технические и обслуживающие помещения недопустим».
На этот раз система думала почти десять секунд.
МАРШРУТ ПЕРЕСЧИТАН
ВНЕШНИЙ ДОСТУП: ТЕРРАСА → КУХНЯ-ГОСТИНАЯ
Ярослав медленно потёр лицо.
«Терраса не является главным входом. Доступ должен осуществляться из внутренней общей зоны дома».
Система обновила классификацию помещений.
ТЕРРАСА ПЕРЕКЛАССИФИЦИРОВАНА: ВХОДНАЯ ЗОНА
Ярослав замер.
Он не сразу понял, что именно произошло. Чертог не нарушил запрет. Он изменил сущность, к которой запрет относился.
Антон прислал:
«Ну?»
«Он назначил террасу прихожей».
Долгая пауза.
«Смело».
«Я сейчас его убью».
«Не убивай. Зафиксируй. Это архитектурная школа».
Ярослав отменил последнее решение и сформулировал требования заново. Один главный вход. Вход через прихожую. Все постоянно используемые помещения должны быть достижимы из общей внутренней коммуникационной зоны. Санузлы, постирочные и технические помещения не могут использоваться как транзитные. Терраса не относится к входной группе. Изменение классификации помещения не допускается только ради выполнения маршрута.
Получился абзац в шесть строк.
Человек понял бы исходную просьбу из четырёх слов.
Система получила шесть строк и снова пересчитала схему.
ОБНАРУЖЕНО ПРОТИВОРЕЧИЕ
КУХНЯ-ГОСТИНАЯ НЕ ВКЛЮЧЕНА В ДОПУСТИМЫЙ МАРШРУТ ОТ ГЛАВНОГО ВХОДА
ТЕКУЩАЯ ПРОСТРАНСТВЕННАЯ СХЕМА НЕДОПУСТИМА
Ярослав перечитал сообщение дважды.
Потом ещё раз.
Система не исправила собственное решение.
Но впервые она перестала делать вид, что решение допустимо.
Это было важнее.
Он сохранил первый скриншот в папку bugs. Через год папка разрастётся до нескольких тысяч файлов и станет одним из самых полезных учебников по устройству Чертога. Пока в ней лежали кухня без входа, санузел с двумя взаимоисключающими дверями и котельная, которую один ранний агент настойчиво пытался сделать проходной.
Название файла он выбрал не раздумывая:
kitchen_access_please_final.png
Антон тут же написал:
«Почему final?»
«Потому что теперь точно исправлено».
«Ты только что проклял проект».
Ярослав не ответил.
Он смотрел на формальный дефект состояния: пространство присутствует, но граф доступа разорван. Ошибка больше не была странной картинкой на плане. Её можно было обнаружить до геометрии.
До стен.
До чертежа.
До того, как человек потратил час на красивый вариант и ещё два — на объяснение, почему кухня доступна через котельную только в очень широком философском смысле.
Если задачу можно представить не как картинку, а как состояние...
Если состояние можно проверять...
Если каждое решение можно делать явным...
Тогда модель перестаёт просто отвечать.
Она начинает работать внутри процесса.
На часах было 01:39.
Ярослав сохранил сценарий под именем:
guest-house-80m2
Он ещё не знал, что через шестьдесят лет этот файл будут хранить за бронированным стеклом.
В тот момент его занимало другое.
Система наконец научилась не только ошибаться.
Она научилась признавать, что её решение нельзя принимать.
Для первой ночи этого было достаточно.
ГЛАВА 2. Связи
Утром выяснилось, что ночь ничего не решила.
Она только дала проблеме хорошее имя.
— Граф связей — это не планировка, — сказала Лена Крылова.
Она сидела в видеозвонке, обхватив кружку обеими руками. За её спиной было окно московской квартиры и белое утро, значительно более сухое, чем сахалинское.
— Я знаю, — ответил Ярослав.
— Тогда зачем ты показываешь мне стрелки вместо стен?
— Потому что стены сейчас мешают.
— Архитектору?
— Модели.
— Очень жаль модель.
Антон, подключившийся из другого города без камеры, хмыкнул.
На общем экране была открыта схема вчерашнего дома. Восемь прямоугольников с названиями помещений и линии между ними. После ночных исправлений кухня-гостиная наконец имела нормальный доступ, терраса снова считалась террасой, а котельная перестала выполнять социальную функцию распределительного холла.
— Допустим, — сказала Лена. — Ты доказал, что в кухню можно войти. Дальше что?
— Дальше хотим понять, какие связи вообще нужны.
— Все.
— Прекрасно. Запишем в базу: «связь — все».
— Не ерничай. Ты понимаешь, о чём я.
— Понимаю. Но система не понимает.
Ярослав увеличил схему.
— Вот спальня и санузел. Между ними нет прямой двери, но есть требование по удобному маршруту. Это одна связь. Кухня и терраса — желательно непосредственное примыкание. Другая. Котельная должна иметь обслуживаемый доступ и свои ограничения. Третья. Гостиная и мастер-спальня не обязаны соприкасаться, но по акустике лучше разнести. Это уже не связь, а отрицательное предпочтение.
Лена перестала пить кофе.
— То есть ты хочешь, чтобы он сначала решал, что должно быть рядом, а что не должно?
— Не только рядом. Что с чем связано функционально. Какой маршрут допустим. Что должно иметь наружную стену. Что требует света. Что должно быть изолировано. Где доступ только технический.
— А потом геометрия?
— Потом геометрия.
— И если геометрия не сходится?
— Возвращаемся сюда.
Она посмотрела на экран уже иначе.
— Это будет долго.
— Для нас — да.
Антон включился:
— Зато код сейчас хотя бы понимает разницу между «рядом» и «дверь».
— Вчера не понимал?
— Вчера для него линия была линией.
— Господи.
— Не призывай высшие силы. У нас и без них зависимостей хватает.
Они начали раскладывать отношения.
ACCESS — МОЖНО ПРОЙТИ
DIRECT_ACCESS — МОЖНО ПРОЙТИ НЕПОСРЕДСТВЕННО
ADJACENCY — ЖЕЛАТЕЛЬНО СОПРИКОСНОВЕНИЕ
SEPARATION — НЕЖЕЛАТЕЛЬНО СОСЕДСТВО
DAYLIGHT — ТРЕБУЕТСЯ НАРУЖНАЯ ОГРАЖДАЮЩАЯ ПОВЕРХНОСТЬ С ВОЗМОЖНОСТЬЮ ОСВЕЩЕНИЯ
SERVICE_ACCESS — ТЕХНИЧЕСКИЙ ДОСТУП
PRIVACY — ОГРАНИЧЕНИЕ ТРАНЗИТА
Через час список стал длиннее, чем ожидали.
Через два выяснилось, что часть связей зависит от сценария, часть — от нормативов, а часть существует только потому, что люди не любят выходить из спальни прямо в кухню перед гостями.
Антон предложил назвать последнюю категорию SOCIAL_AWKWARDNESS.
Лена предложила назвать Антона идиотом.
Ярослав записал рабочее название PRIVACY_CONFLICT и пообещал вернуться к нему позже.
Через три часа Лена сказала:
— Поздравляю. Вы изобрели профессию архитектора, только хуже.
Ярослав потёр глаза.
— Нет. Мы пытаемся разложить профессию на то, что можно передать системе, и то, что пока нельзя.
— А что нельзя?
Он не ответил сразу.
На экране был пустой блок, который они не могли нормально назвать уже минут двадцать.
«Хорошо».
Не нормативно.
Не минимально.
Не экономично.
Просто хорошо.
Почему одна планировка ощущается цельной, а другая — набором помещений, даже если обе формально работают?
Архитектор видит это почти мгновенно. Объяснение может занять страницу. Иногда архитектор не может объяснить вовсе, но готов защищать ощущение до тех пор, пока остальные либо согласятся, либо уйдут обедать.
— Вот это, — сказал Ярослав. — Пока нельзя.
Лена кивнула.
— Наконец-то разумная граница.
Они запустили генерацию трёх вариантов.
Первый получился компактным: инженерные помещения стянуты в одно ядро, кухня-гостиная раскрыта на террасу, спальни по другой стороне.
Второй был красивее на схеме, но длиннее по маршрутам.
Третий формально удовлетворял почти всем требованиям и выглядел так, будто его проектировал человек, ненавидящий мебель.
Гостевая спальня имела площадь, в которую помещались кровать, шкаф и проход. Одновременно они туда не помещались.
Кухня была компактной настолько, что холодильник приходилось открывать из гостиной.
Дверь санузла не выходила прямо в общую зону — она выходила почти прямо, под углом, который мог обмануть только алгоритм.
— Выкинуть, — сказала Лена.
На экране появился ответ системы:
«Вариант № 3 имеет минимальную суммарную длину внутренних связей».
— Мне всё равно.




