Phonebook
ПрАнКА 2010
Time Limit: 0.5s, Memory Limit: 64MiB
Елеонора е доста озадачена от телефонния указател на своя телефон. На моменти безполезен като пепелник на мотор и неефективен като random_shuffle() използван за сортиращ алгоритъм, той създава маса главоболия на използващите го, а в частност и на Ели. По тази причина вие, като нейни приятели, решавате да й помогнете и да пренапишете софтуера му.

Телефонният указател трябва да може да изпълнява следните заявки:
  • add <name> <number> – добавя на човека с име <name> и номер <number>
  • queryname <name> – извежда информация за всички различни номера (сортирани лексикографски) на човек с име <name>
  • querynum <number> – извежда информация за всички хора (сортирани лексикографски) които отговарят на номер <number>
  • delname <name> – изтрива информацията за човек с име <name>
  • delnum <number> – изтрива информацията за номер <number>
Сортирани лексикографски означава, че за всеки два стринга Si и Si+1 от изхода Si+1 съдържа по-голям (като ASCII символ) знак на първата позиция, в която те се различават, или е по-дълъг, ако единият е префикс на другия.
Вход
На първия ред на стандартния вход ще бъде зададено едно число N на отделен ред – броят заявки, които вашата програма трябва да обработи. На всеки от следващите N реда ще бъде зададена по една заявка от описаните по-горе.
Изход
За всяка заявка от тип queryname и querynum изведете на отделен ред на стандартния изход разделени с по един интервал, сортирани лексикографски съответните имена или номера, които заявката очаква да изпечатате. Ако въпросното име или номер не съществуват изпечатайте само празен ред за съответната заявка.
Ограничения
  • 1 ≤ N ≤ 100,000
  • Всяко име или номер във входа ще бъде не по-дълго от 16 символа.
Примерен Вход Примерен Изход
10 add Kriss 0888424242 add Kriss 0883666666 queryname Kriss querynum 0883266642 querynum 0888424242 delnum 0883666666 queryname Kriss add Elly 0888424242 querynum 0883666666 querynum 0888424242 0883666666 0888424242 Kriss 0888424242 Elly Kriss
С първите две заявки записваме два номера на Крис. С третата заявка искаме да изпечатаме всички номера, записани за нея, в лексикографски ред. Четвъртата заявка е за несъществуващ номер, затова печатаме празен ред. Петата заявка е за единия от номерата на Крис, затова печатаме нейното име. След това изтриваме единия от номерата й, и при следващото питане за нея вече печатаме само останалия номер. В седмата заявка добавяме телефон на Ели, който съвпада с телефона на Крис. На предпоследната заявка питаме за (изтрития) номер на Крис. Тъй като той вече не съществува, печатаме празен ред. В последната заявка питаме за номера, който Крис и Ели делят. Имената на момичетата отново са изпечатани в лексикографски ред.
Мрън!