D1. фанатам стратегий 3 (5 )
данная – логическое продолжение "фанатам стратегий 2". рекомендуем перед решением данной полностью решить "фанатам стратегий 2"
к добавлено примечание!
вскоре стало понятно, что всё совсем не просто. нельзя взять и построить здание. их в этой игре ещё и открыть нужно.
новое здание типа a можно построить, только если на нашей базе функционирует хотя бы по одному новому зданию из списка необходимых зданий здания типа a.
сколько на самом деле нам придётся построить зданий (не считая электростанций)? какие они? в каком порядке их строить? ваша – найти ответы на эти вопросы.
примечание
гарантируется, что существует такая последовательность постройки зданий, что здания всех типов можно построить.
формат входных данных
в первой строке записаны три целых числа n, m и (1≤≤≤1000; =1)) – количество различных типов новых зданий в игре, количество новых зданий, которые нужно построить, и номер формата выходных данных.
в следующей строке записаны m названий типов зданий, разделённых пробелами – требуемые для обеспечения устойчивой обороны здания. гарантируется, что строка не содержит одинаковых типов зданий.
далее идёт n блоков по 22 строки следующего вида:
в первой строке – название типа здания.
во второй – длина списка необходимых зданий для здания данного типа и сам список необходимых зданий. гарантируется, что список не содержит одинаковых типов зданий.
сумма длин списков необходимых зданий не превышает 5⋅10^4.
название каждого типа здания – это число от 11 до 10^5.
формат выходных данных
если =1t=1, то выведите одно число – минимальное количество зданий, которые нужно построить.
если =2t=2, то в первой строке выведите одно число – минимальное количество зданий, которое необходимо построить, а во второй – k названий зданий, которые нужно построить, в том порядке, в котором их нужно строить. если существует несколько подходящих последовательностей – выведите любую из них.
sample input:
3 1 1
1
2
0
1
2 2 3
3
0
sample output:
3
Ответы на вопрос:
n, m, t = map(int,
x = list(map(int,
def build(name):
if name in built:
pass
elif b[a.index(name)] == ["0"]:
built.append(name)
else:
for i in b[a.index(: ]:
if i not in built:
build(i)
built.append(name)
a = []
b = []
built = []
for i in range(0, n):
a.append(
b.append(
for i in range(0, b.:
built.append(a[b.
a.pop(b.
b.pop(b.
[build(str(o)) for o in x]
print(len(built))
ls-63 немного ошиблась в расчетах : ) дано: апельсин=груша+слива груша=яблоко+слива 2апельсина=2груши+2сливы 2апельсина=(2яблока+2сливы)+2сливы 3яблока=2яблока+4сливы яблоко=4сливы 1груша=4сливы+слива 1груша=5слив
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Darina0202004.01.2022 23:42
-
Blackwolf1111117.12.2020 00:59
-
cangelina202523.11.2020 09:35
-
kongratbaeva200328.01.2021 01:46
-
Патригг08.03.2020 03:11
-
СавелийМясоедов77724.11.2021 17:02
-
mukhamedinaguls28.08.2020 05:23
-
Coolplay13.06.2021 09:10
-
AkvaH2O29.01.2020 12:32
-
bill333418.06.2022 16:47
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.