Динамические структуры данных

Формат входных данных.
Ввод:
Сначала вводится n-
количество кластеров диска (размер кластера определяется как 360/n), затем построчно список файлов, первоначально
находящихся на диске по формату:
<ИмяФайла>
<РазмерФайла>
0 – признак окончания ввода,
затем следует список действий с файлами по формату:
<КодОперации>
<ИмяФайла> <РазмерФайла>
Где КодОперации – 1 –
удаление файла, 2 – запись файла, 0 – конец ввода.
Вывод:
список занятых кластеров диска, затем через строчку список свободных кластеров
диска по формату:
<НомерКластера>
<ИмяФайла>.
Пример входных данных:
10
A.DAT 60
B.DAT 15
C.DAT 100
D.DAT 25
0
1 E.DAT 75
2 C.DAT 100
1 F.DAT 50
2 B.DAT 15
2 D.DAT 25
1 G.DAT 40
0
Пример выходных данных:
1 A.DAT
2 A.DAT
4 F.DAT
5 F.DAT
6 G.DAT
7 G.DAT
8 E.DAT
9 E.DAT
10 E.DAT
3 FREE