Statistika - Školsko (2020)


Submit solution

Points: 90 (partial)
Time limit: 5.0s
Memory limit: 64M

Author:
Problem type
Allowed languages
Assembly, Awk, C, C++, Java, Perl, Python

Školsko natjecanje 2020. godine za 1. i 2. razred Srednje Škole - 2. zadatak

Na Mirkovu Linux računalu, svaka datoteka ima hijerarhijsku putanju, primjerice

/core.dat /docs/biljeske.txt /skolsko/zadatci/geo/primjeri/primjer.in /skolsko/upute.pdf

Tako se npr. treća navedena datoteka primjer.in nalazi unutar direktorija primjeri, koji se nalazi unutar direktorija geo, koji se nalazi unutar direktorija zadatci, koji se nalazi unutar direktorija skolsko, koji se nalazi u početnom (tzv. root) direktoriju.

Svaka datoteka ima svoju ekstenziju – završetak imena datoteke, npr. .html, .cpp, .py, .zip... U gornjem primjeru ekstenzije su .dat, .txt, .in i .pdf. Također, svaka datoteka ima svoju razinu, koja se definira kao broj poddirektorija u koje je potrebno ući da bi se iz početnog direktorija došlo do određene datoteke. Tako se prva datoteka iz gornjeg primjera nalazi na razini 0 (jer se već nalazi u početnom direktoriju), druga na razini 1 (jer pripada direktoriju docs), treća na razini 4, a četvrta na razini 1.

Mirko želi napraviti statistiku svojih datoteka. Odlučio je zasebno promatrati svaku razinu i za sve datoteke koje pripadaju istoj razini, Mirko želi za svaku ekstenziju izračunati ukupnu veličinu datoteka te ekstenzije. Pritom ekstenzije (za pojedinu razinu) želi poredati silazno po broju datoteka koje imaju tu ekstenziju, potom (ako ima izjednačenja) silazno prema ukupnoj veličini datoteka ekstenzije, a potom (ako još uvijek ima izjednačenja) abecedno po ekstenziji.

Primjerice, na razini 1 u gornjem primjeru nalaze se ekstenzije .txt i .pdf. Budući da su prema prvom kriteriju (broj datoteka) one izjednačene (po jedna datoteka svake ekstenzije), prije će doći ona ekstenzija čija je ukupna veličina datoteka (u kilobajtima) veća.

Napišite program koji pomaže Mirku i ispisuje traženu statistiku zadanog skupa njegovih datoteka.

ULAZNI PODACI

U prvom je retku prirodan broj n (1 ≤ n ≤ 30), broj promatranih datoteka. U svakom od sljedećih n redaka navedena je putanja datoteke i njezina veličina u kilobajtima, odvojene razmakom. Veličina je prirodan broj manji od 10^7 .

Putanja datoteke sastoji se od najviše 50 znakova, bez razmaka. Putanja počinje znakom / nakon kojeg slijedi niz od nula ili više direktorija odvojenih istim znakom /, nakon čega slijedi ime datoteke i njezina ekstenzija odvojena točkom. Ime svakog direktorija, datoteke i ekstenzije neprazan je niz malih slova engleske abecede. Nijedna putanja neće biti identična nekoj drugoj.

IZLAZNI PODACI

Redom za svaku razinu r = 0, 1, 2, . . ., ako se na njoj pojavljuje barem jedna datoteka, treba ispisati blok redaka. U prvom retku bloka treba stajati sama razina r. U svakom od sljedećih Er redaka bloka (gdje je Er broj različitih ekstenzija koje se javljaju na razini r) treba ispisati odgovarajuću ekstenziju (uključujući vodeću točku) i ukupnu veličinu u kilobajtima svih datoteka te ekstenzije na razini r, odvojene razmakom. Ekstenzije unutar bloka za razinu r treba poredati u skladu s kriterijima iz teksta zadatka (broj datoteka, veličina, abecedno).

PRIMJERI TEST PODATAKA

ulaz
4
/core.dat 100
/tmp.dat 150
/install.zip 300
/tmp/install.zip 400
izlaz
0
.dat 250
.zip 300
1
.zip 400

ulaz
8
/test/in.x 100
/test/in.b 30
/test/out.x 100
/test/out.b 30
/test/pic/in.svg 10
/test/pic/out.svg 10
/x/test/in.x 20
/x/test/in.b 20
izlaz
1
.x 200
.b 60
2
.svg 20
.b 20
.x 20

Comments

There are no comments at the moment.