Сегодня состоялось открытое первенство ЮУрГУ по программированию. Рая «Stigler», Женя «CKopnuOH» и я «Я» составляли дружную команду хакеров. Специально обученный человек прочитал наши фамилии и объявил, что нам дорога к рабочему месту №25. Нужно было придумать название команде; здесь Женя порулил, предложив название «Команда ПК №25».
Потом мы отлично пописали программы на Паскале, несмотря на Раины попытки запустить Си. Из 8 задач мы решили 3. Из команд так 60 мы заняли 21-е место. Учитывая то, что мы туда шли вообще просто так (пообщаться), результат неплохой.
Задание №4 — написать парсер-преобразователь из одного XML-формата в другой. Основная задача — заменить непарные теги (<tag/>) парными (<tag></tag>), а атрибуты (<tag attr="value" />) убрать и сделать вложенными тегами (<tag><attr>value</attr></tag>). Естественно, какие-то тэги могут оказаться парными и при этом с атрибутами. Внутри парных тэгов мог оказаться какой-то текст, в том числе и вложенные тэги.
Исходный файл может быть форматирован сколь угодно безобразно. На выходе должна получиться конфетка. Пробелы, переносы и табуляция внутри текста и значений атрибутов должны быть сохранены, а вне их — заменены на один пробел. Напоминает, полную задницу, не так ли? Не напоминает? В Паскале нет регэкспов. Теперь напомнинает? То-то.
Кроме нашей команды парсер сделала еще только одна. И снова у меня появился повод считать себя крутым. Я крутой.
(Здесь я, кстати, выражаю благодарность Шурику Бабаеву за пропаганду автоматного программирования. Сильно помогло)
За полчаса до конца Рая сгенерировала алгоритм решения одной задачи на поиск площади геометрической фигуры, образованной пересечением окружности и квадрата (параметры задаются тестером). Мы так и не успели его реализовать. Жалко. Сергей «SauroN» (был в другой команде) решил эту задачу методом Монте-Карло за первые 8 минут олимпиады. Гад! Так не честно! (Смайлик.) И снова у меня появился повод считать его крутым. Сергей — крутой.
В общем, было интересно.