Формулировка задачи: В некоторой Галактике силы правопорядка выявили разветвленную шпионскую сеть. Сеть сильно законспирирована и состоит из рядовых членов и руководителей различных уровней. Во главе стоит один главный руководитель — лидер. До начала арестов приказ лидера может быть доведен до любого члена сети. Все члены сети пронумерованы от 1 до N. Каждый член сети знает только своего вышестоящего руководителя (ровно одного) и своих непосредственных подчиненных (руководитель не знает подчиненных своего подчиненного и наоборот). Естественно, что с началом арестов членов сети она распадется на мелкие, не связанные друг с другом группы. Например, с арестом члена сети № 2 (рисунок) сеть разваливается на 4 группы. Полицмейстер уверяет, что группа, состоящая из менее чем К членов сети, вырождается и не представляет угрозы. Стремясь не уронить престиж Галактики, полицмейстер поставил задачу произвести минимальное количество арестов членов сети так, чтобы от нее остались только вырождающиеся маленькие группы.
Требуется: Написать программу, которая бы по входным данным, описывающим структуру подпольной партии, выводила количество арестов и номера членов партии, которых нужно арестовать.
Входные данные: файл ORG.IN Входной файл содержит три строки. В первой записано число K (1 ≤ K ≤ 10 000), во второй строке — число N (1 ≤ N ≤ 10 000), определяющее количество членов партии. Третья строка содержит набор из N—1 числа. В этой строке для каждого члена партии, кроме лидера, задается номер его непосредственного руководителя. Номер руководителя всегда меньше, чем номер подчиненного. При этом первое число задает номер руководителя второго члена партии, второе — третьего и так далее. Числа в строке разделяются одним пробелом.
Выходные данные: файл ORG.OUT Выходной файл состоит из двух строк. В первую строку необходимо поместить количество арестов, а во вторую — номера членов партии, подлежащих аресту. Эти номера разделяются одним пробелом. При наличии нескольких решений выведите одно из них.
Пример входного файла для структуры партии, представленной на рисунке:
Пример выходного файла для приведенного входного файла:
Тип: Лабораторная работа
Предмет: C/C++
Разработка программу с использование win api
Стоимость: 4400 руб.
Тип: Лабораторная работа
Предмет: C/C++
Лабораторная работ по дисциплине Структуры данных
Стоимость: 1140 руб.
План. Планирование. Человеку свойственно строить планы и мечты с самых первых лет жизни. Действительно, умение мечтать – это одна из черт и способностей, которая отличает человека от других живых существ. Но что отличает серьезного человека от несерьезного, еще незрелого? В первую очередь – привы...
Читать дальшеВ этой статье мы с вами будем разбираться как работать с формулами. Нет, не теми формулами, которые будут все для вас считать. Нас интересует, как написать супер-мега-сложные формулы так, чтобы система не глючила и при открытии документа или его печати корректно отображала именно то, что мы хотели ...
Читать дальшеПредложение актуально на 20.08.2026