"Pinqvin"#2740

"Pinqvin"

1 saniyə
256 meqabayt
Çox çətin

Python Van Rossum ilə danışdıqdan sonra Kovalski öz proqramlaşdırma dilini ixtira etməyə və onu "Penguin" adlandırmağa qərar verdi. Bu dilin əsas xüsusiyyəti odur ki, o, digər bütün proqramlaşdırma dillərinin ən yaxşı cəhətlərini özündə birləşdirəcək və bu, şübhəsiz, onu dünyanın ən populyar dili edəcək.

Bundan əlavə, bu dildə C dilinin preprosessoruna çox bənzər bir preprosessor olacaq. Preprosessor proqramın mənbə kodunu yuxarıdan aşağıya xətt üzrə işləyir. Əgər cari sətr "import " formasındadırsa, bu sətri some_file_name.pen faylının mənbə kodu ilə əvəz edir və faylı işləməyə davam edir (bura yeni əlavə olunan sətrlər də daxildir).

Preprosessorun işini nümunə üzərində nəzərdən keçirək. Tutaq ki, iki fayl var — a.pen və b.pen.

a.pen faylının mənbə kodu:

import < b.pen > sayHello("world");

b.pen faylının mənbə kodu:

void sayHello(string name): print("Hello, " + name);

Preprosessordan sonra fayllar aşağıdakı kimi görünəcək:

a.pen:

void sayHello(string name): print("Hello, " + name); sayHello("world");

b.pen:

void sayHello(string name): print("Hello, " + name);

Qeyd edək ki, preprosessor rekursiv işləyir: daxil etmə direktivlərini hamısı işlənənə qədər emal etməyə davam edir. Asanlıqla görmək olar ki, bu, sonsuz fayl daxil edilmə prosesinə səbəb ola bilər. Belə halda, nəticədə yaranan fayl ölçüsü sonsuz sayılır.

Lakin preprosessordan sonra proqramın mənbə kodunun həcmi əhəmiyyətli dərəcədə arta bilər. Kowalskinin Penguin dilində faylı var, onların bəziləri digər faylları daxil edir. Onu preprosessor tətbiq olunduqdan sonra faylların ölçüsü maraqlandırır. O, yeni bir tapşırığa çağırıldığından, bu işdə sənə müraciət edir.

Giriş

Giriş faylının birinci sətrində (1 \leq n \leq 10000) — faylların sayı verilir. Sonrakı blokun hər birində üç sətr var. –ci blokun birinci sətrində k_i (0 \leq k_i \leq 30000) — –ci proqramda daxil edilən faylların sayı verilir. –ci blokun ikinci sətrində k_i ədəd — –ci fayla daxil edilən faylların indeksləri verilir. Bütün indekslər bir ilə arasında tam ədədlərdir. –ci blokun üçüncü sətrində isə s_i (1 \leq s_i \leq 10^9) — digər faylların daxil edilməsi üçün olan sətrlər nəzərə alınmadan, –ci faylda olan sətrlərin sayı verilir.

Daxil edilmiş faylların ümumi sayı -i keçmir.

Giriş faylının son sətrində — Kowalskinin ölçüsünü öyrənmək istədiyi faylların sayı verilir. Bundan sonra həmin sətrdə ədəd — həmin faylların indeksləri verilir.

Çıxış

Çıxış faylına sətr yazın — Kowalskinin maraqlandığı hər bir fayl üçün, preprosessordan sonra həmin faylın ümumi sətir sayını yazın. Əgər bu say sonsuzdursa, -1 yazın. Çıxış faylının ölçüsünün bir meqabaytı keçmədiyinə zəmanət verilir.

Nümunələr

Nümunə 1

Loading
Loading