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

Формат входных данных.
Ввод:
Первоначальное состояние задолженности абонентов, по абоненту в строке по
формату:
<№ телефона>
<ФИО> <неоплаченных минут>
YYY – признак окончания ввода,
Затем строки изменения состояния,
по одному действию в строке по формату:
<код операции> <№
телефона><число минут>
Где код операции 1 –
разговор, 2 – оплата разговора, 0 – признак окончания ввода.
Вывод:
Сначала первоначальный список в порядке возрастания номеров телефонов по формату:
<№ телефона>
<ФИО> <неоплаченных минут>
затем через пустую строку новый список в
порядке убывания минут задолженности по формату:
<число минут> <№
телефона> <ФИО>.
Пример входных данных:
555-55-55 Ivanov 20
444-44-44 Petrov 10
666-66-66 Sidorov 5
333-33-33 Serov 15
200-30-00 Zubov 25
307-90-89 Zhadov 35
103-55-00 Suhov 6
700-77-77 Bulov 12
351-12-12 Bykov 17
505-44-54 Dymov 19
yyy
1 307-90-89 10
1 103-55-00 15
1 351-12-12 20
2 444-44-44 2
2 505-44-54 5
2 700-77-77 3
2 103-55-00 5
0
Пример выходных данных:
103-55-00 Suhov 6
200-30-00 Zubov 25
307-90-89 Zhadov 35
351-12-12 Bykov 17
444-44-44 Petrov 10
505-44-54 Dymov 19
555-55-55 Ivanov 20
666-66-66 Sidorov 5
700-77-77 Bulov 12
45 307-90-89 Zhadov
37 351-12-12 Bykov
25 200-30-00 Zubov
20 555-55-55 Ivanov
16 103-55-00 Suhov
15 333-33-33 Serov
14 505-44-54 Dymov
9 700-77-77 Bulov
8 444-44-44 Petrov
5 666-66-66 Sidorov