Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод 
Послать решение Blockly Посылки Темы Где Обсудить (0)

тудентка Марсианского университета Эми изучает в
рамках курса “Архаические БД и ЭС” пакет TopSpeed’s Clarion™
for Windows™, который появился на заре компьютерной
эры и основывался на широком использовании настраиваемых шаблонов
для быстрой разработки программ, а не объектно-ориентированного подхода,
который появился в то же время. Как и
в большинстве других языков программирования, программа на
языке Clarion состоит из набора ключевых и резервированных слов,
чисел, строковых констант, скобок, знаков операций и других лексем.
Регистр букв в ключевых и резервированных словах
и идентификаторах игнорируется. Между лексемами можно
вставлять произвольное количество пробелов.
Конец строки завершает оператор. Слишком длинный оператор можно
разбивать на несколько строк, указывая последним символом в
строке символ продолжения ‘|’ (вертикальная черта), но
лексему при этом нельзя разбивать на две части.
Строковые константы заключаются в апострофы, а апострофы в
строке удваиваются, например, ‘It’’s a string’. Элементы
окна или отчета описываются в программе в следующем виде:
тип_элемента[(параметры)],AT(X, Y[,[W],[H]])[, свойство[(параметры)]]…
В качестве параметров могут быть указаны строки (или конкатенация строк),
числа, форматы, идентификаторы переменных. Свойство AT задает
координаты X и Y элемента (координаты являются целыми
числами в диапазоне от 0 до 10000), а также, возможно, его ширину W и высоту H.
Описание других свойств элемента имеет аналогичную форму.
Для редактирования окон и отчетов в пакете применяются
специальные визуальные редакторы, генерирующие необходимые описания.
При работе с пакетом Эми обнаружила, что порядок описаний
элементов в структуре окон и отчетов зависит от порядка
добавления элементов в редакторе. Это является существенным
недостатком, если требуется скопировать некоторую связанную
группу элементов в другое окно или отчет. Напишите программу,
выполняющую сортировку описаний элементов по возрастанию координаты Y,
а затем X. При совпадении Y и X оставить описания
элементов в порядке их следования во входном файле.
Во входном файле содержится от 1 до 1000 строк длиной
не более 80 символов – набор синтаксически корректных описаний элементов
окна или отчета. Некоторые описания могут быть разбиты на
несколько строк (не более 10 строк).
В выходной файл вывести упорядоченные по возрастанию
координаты Y, а затем X описания элементов, при этом
содержание строк не должно измениться, только их порядок.
Пример ввода
STRING('(описание вып. работ, оказанных услуг)'),AT(2,84,|
62,5),FONT(,8,,),USE(?String29:2),TRN,CENTER,#ORIG(?String29)
LINE,AT(29,68,227,0),USE(?Line24),COLOR(00H),#ORIG(?Line24)
STRING(@s50),AT(136,69,106,6),USE(GLB_OPLSPB),TRN,#ORIG(GLB_OPLSPB)
STRING('Сумма налога'),AT(168,84),FONT(,8,,),USE(?String94),|
TRN,#ORIG(?String94)
Вывод для примера
LINE,AT(29,68,227,0),USE(?Line24),COLOR(00H),#ORIG(?Line24)
STRING(@s50),AT(136,69,106,6),USE(GLB_OPLSPB),TRN,#ORIG(GLB_OPLSPB)
STRING('(описание вып. работ, оказанных услуг)'),AT(2,84,|
62,5),FONT(,8,,),USE(?String29:2),TRN,CENTER,#ORIG(?String29)
STRING('Сумма налога'),AT(168,84),FONT(,8,,),USE(?String94),|
TRN,#ORIG(?String94)