С помощью ini-файлов в Windows записываются настройки приложений. Каждая строка ini-файла либо определяет некоторое значение, либо начинает секцию.
Строка, определяющая значение, имеет вид "key=value", где key — это название некоторого свойства, а value — его значение. По обе стороны key и value могут быть пробелы, которые стоит игнорировать.
Строка, начинающая секцию, имеет вид "[section]". Эта строка обозначает, что все последующие строки вида "key=value" определяют свойства для секции section. Разумеется, следующая строка начала секции меняет текущую секцию. В строках этого вида тоже могут встречаться незначащие пробелы (до и после любой квадратной скобки).
Cтроки, у которых первый непробел является символом ";", следует игнорировать.
Ваша задача, написать программу, которая обработает заданный корректный ini-файл и выведет его в специальном виде:
- сначала следует разместить строки вида "key=value", для которых секция не определена;
- затем следует разместить все секции в лексикографическом (алфавитном) порядке их названий;
- внутри каждого блока, описанного в двух предыдущих пуктах, строки вида "key=value" следует упорядочить лексикографически по "key";
- если существует более одной пары "key=value" с одинаковым "key" для одной секции (или с неопределенной секцией), то следует выводить только последнее вхождение (для порядка определенного входными данными);
- все незначащие пробелы и переводы строк следует удалить.