eolymp
bolt
Try our new interface for solving problems
Məsələlər

"Penguin"

"Penguin"

После общения с питоном Ван-Россума, Ковальски решил изобрести свой собственный язык программирования и назвать его "Penguin". Особенностью этого языка будет то, что он возьмет все самое лучшее от остальных языков программирования, что, несомненно, сделает его самым используемым во всём мире. Помимо прочего, в этом языке будет препроцессор, очень похожий на препроцессор языка Си. Препроцессор обрабатывает исходный код программы построчно сверху вниз. Если текущая строка имеет вид "\textbf{import }", то он подставляет вместо этой строчки исходный код файла \textbf{some_file_name.pen} и продолжает обработку файла (обрабатывая в том числе и только что вставленные строки). Рассмотрим работу препроцессора на примере. Пусть есть два файла --- \textbf{a.pen} и \textbf{b.pen}. Исходный код \textbf{a.pen}: \textbf{import < b.pen > sayHello("world");} Исходный код \textbf{b.pen}: \textbf{void sayHello(string name): print("Hello, " + name);} После работы препроцессора файлы будут выглядеть следующий образом. \textbf{a.pen}: \textbf{void sayHello(string name): print("Hello, " + name); sayHello("world");} \textbf{b.pen}: \textbf{void sayHello(string name): print("Hello, " + name);} Заметьте, что препроцессор работает рекурсивно: он продолжает обрабатывать директивы вставки до тех пор, пока они не будут все обработаны. Несложно видеть, что это может привести к бесконечному процессу подключения файлов. В таком случае размер результирующего файла полагается равным бесконечности. Однако после работы препроцессора исходный код программы может сильно увеличиться. У Ковальски есть \textbf{n} файлов на языке "Penguin", некоторые из них подключают другие файлы. Его интересует размер файлов после выполнения препроцессора. Так как Ковальски вызывают на новое задание, он просит Вас помочь ему. \InputFile В первой строке входного файла находится число \textbf{n} (\textbf{1} ≤ \textbf{n} ≤ \textbf{10000}) --- количество файлов. Следующие \textbf{n} блоков содержат по три строки. В первой строке \textbf{i}--ого блока находится число \textbf{k_i} (\textbf{0} ≤ \textbf{k_i} ≤ \textbf{30000}) --- количество файлов, подключаемых в программе \textbf{i}. Во второй строке \textbf{i}--ого блока находятся \textbf{k_i} чисел --- номера файлов, подключаемых в файле с номером \textbf{i}. Все индексы --- целые числа от одного до \textbf{n}. В третьей строке \textbf{i}--ого блока находится число \textbf{s_i} (\textbf{1} ≤ \textbf{s_i} ≤ \textbf{10^9}) --- количество строк в \textbf{i}--ом файле, без учёта строк подключения других файлов. Гарантируется, что суммарное количество подключаемых файлов не превосходит \textbf{30000}. В последней строке входного файла содержится число \textbf{p} --- количество файлов, размеры которых после работы препроцессора, хочет знать Ковальски. Далее в этой же строке содержится \textbf{p} чисел --- номера этих файлов. \OutputFile В выходной файл выведите \textbf{p} строк --- для каждого из интересующих Ковальски файлов количество строк в нём после работы препроцессора. Если это количество будет бесконечно большим, то выведите \textbf{-1}. Гарантируется, что размер выходного файла не превосходит одного мегабайта.
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 256 MiB
Giriş verilənləri #1
2
1
2
1
0

2
2 1 2
Çıxış verilənləri #1
3
2
Mənbə Яндекс, отбор ЗКШ 2011-2012, 1 тур