Автор - muerto1

Задача D1. Фанатам стратегий 3 (5 баллов) Данная задача – логическое продолжение задачи "Фанатам стратегий 2". Рекомендуем перед решением данной задачи полностью решить задачу "Фанатам стратегий 2" К задаче добавлено примечание! Вскоре стало понятно, что всё совсем не просто. Нельзя взять и построить здание. Их в этой игре ещё и открыть нужно. Новое здание типа A можно построить, только если на нашей базе функционирует хотя бы по одному новому зданию из списка необходимых зданий здания типа A. Сколько на самом деле нам придётся построить зданий (не считая электростанций)? Какие они? В каком порядке их строить? Ваша задача – найти ответы на эти вопросы. Примечание Гарантируется, что существует такая последовательность постройки зданий, что здания всех типов можно построить. Формат входных данных В первой строке записаны три целых числа n, m и t (1≤m≤n≤1000;t=1) – количество различных типов новых зданий в игре, количество новых зданий, которые нужно построить, и номер формата выходных данных. В следующей строке записаны m названий типов зданий, разделённых пробелами – требуемые для обеспечения устойчивой обороны здания. Гарантируется, что строка не содержит одинаковых типов зданий. Далее идёт n блоков по 2 строки следующего вида: В первой строке – название типа здания. Во второй – длина списка необходимых зданий для здания данного типа и сам список необходимых зданий. Гарантируется, что список не содержит одинаковых типов зданий. Сумма длин списков необходимых зданий не превышает 5⋅104. Название каждого типа здания – это число от 1 до 105. Формат выходных данных Если t=1, то выведите одно число – минимальное количество зданий, которые нужно построить. Если t=2, то в первой строке выведите одно число – минимальное количество зданий, которое необходимо построить, а во второй – k названий зданий, которые нужно построить, в том порядке, в котором их нужно строить. Если существует несколько подходящих последовательностей – выведите любую из них.

Ответ

Автор - Warhammer2000

Ответ:

def build(name):

   if name in built:

       pass

   elif B[A.index(name)] == ["0"]:

       built.append(name)

   else:

       for i in B[A.index(name)][1:]:

           if i not in built:

               build(i)

       built.append(name)

A = []

B = []

built = []

for i in range(0, n):

   A.append(input())

   B.append(input().split())

[build(str(o)) for o in x]

print(len(built))

Объяснение:

Тоже решаю НТИ

Ответ

Автор - MaksimElchaninov

Ответ:

n, m, t = map(int, input().split())


x = list(map(int, input().split()))



def build(name):

   if name in built:

       pass

   elif B[A.index(name)] == ["0"]:

       built.append(name)

   else:

       for i in B[A.index(name)][1:]:

           if i not in built:

               build(i)

       built.append(name)



A = []

B = []

built = []


for i in range(0, n):

   A.append(input())

   B.append(input().split())


for i in range(0, B.count([])):

   built.append(A[B.index([])])

   A.pop(B.index([]))

   B.pop(B.index([]))



[build(str(o)) for o in x]


print(len(built))

Объяснение:

htt ps://pastebin. com/cNBHaZJM

Спасибо, Warhammer 2000

Ответы и объяснения

Сервис носит ознакомительный характер, вся информация, а в частности вопросы и ответы, которые задают и отвечают пользователи.
© 2025 Все права защищены Политика конфиденциальности Контакты
search points attachment profile arrow left arrow right star heart verified symbols equation arrow-down question mark check menu accountancyadministrationagriculturalalgebraallarabicartart_musicbelarusbelarus_altbiologybusinesscatalachemistrychineseeconomicsegzamenglishentrepreneurshipenvironmentethicseuskarafirst_aidfrenchgalegogeographygeologygeometrygermangrammarhealthhistoryindia_langindonesian_langinformaticsitalianjapanesekazachkazach_altkoreanlanguagelatinlawlife_scienceliteraturelogicmathematicsmusicnigerian_langother_languagesotherspedagogicsphilosophyphysical_educationphysicspoliticspsychologyreligionrpa_langrussianrussian_altsciencesecurityskillssocial_sciencesociologyspanishstatisticstechnologytourismtrafficukrainianukrainian_altukrainian_literaturewos_civilisation accountancyadministrationagriculturalalgebraall_1arabicartart_music_2belarusbelarus_altbiologybusiness_2catalachemistry_1chineseeconomicsexam_3englishentrepreneurshipenvironment_2ethicseuskarasecurity_1frenchgalegogeography_4geology_4geometrygermangrammarhealthhistoryindia-langindonesian-langinformaticsitalianjapanesekazachAsset 230koreanlanguagelatinlawlife-scienceliteraturelogic_2mathematicsmusicnigerian-langotherlanguagesother_1pedagogicsphilosophyphysical_educationphysicspoliticspsychologyreligion_1rpa-langrussianrussian_altsciencesecurity_3_mskills_1allsocial_science_5_msociologyspanishstatisticstechnologytourismtrafficukrainianukrainian_altukrainian_literaturewos_civilisation