Используемые средства.
Разрешенными являются следующие системы программирования:
  • Delphi 5.0
  • Visual C++ 6.0
  • Visual Age 4.0.


1. Фрактал

На вход программы подается двумерная ломаная (последовательность отрезков - ребер). Эта ломаная представляет собой N-е приближение к фрактальной линии. Требуется: построить двумерную ломаную, которая представляет собой (N+1)-е приближение к тому же фракталу. Если шести десятичных знаков недостаточно для различения соседних вершин, допустим вывод вырожденных ребер, начальная и конечная точки которых совпадают.

Входные данные:
Входной файл input.txt содержит строки с координатами вершин ломаной (x и y), разделенными пробелом. Первая строка содержит координаты начальной точки ломаной. Каждая следующая строка содержит координаты следующей вершины ломаной, также разделенные пробелом. Конец ломаной обозначается концом файла. Последняя точка в файле может совпадать с начальной - это означает, что ломаная замкнутая. Все координаты задаются вещественными числами с плавающей точкой точностью до 6-го знака после десятичной запятой.

Выходные данные:
Выходной файл output.txt содержит строки с координатами построенной ломаной в формате, аналогичном формату ввода.

Ограничения: исходная ломаная содержит не более 8.000 вершин. Исходная ломаная не содержит вырожденных ребер.

Пример

2. Видео

В рамках рекламной кампании некая компьютерная фирма заказала несколько рекламных роликов для показа по телевидению. Все ролики имеют одинаковое количество кадров (каждый кадр - это файл с кадром формата 320*240, 256 цветов). Однако в ночь перед сдачей работы неизвестные хакеры в поисках тестов к задачам Олимпиады перемешали файлы с кадрами уже готовых роликов. Вы должны написать программу, восстанавливающую исходные ролики с точностью до порядка фрагментов (см. Определения).

Определения. Каждый ролик состоит из нескольких фрагментов (планов). Переход между планами мгновенный и не содержит специальных кадров типа затемнения и т.д. При этом во всей совокупности роликов не встречается двух планов, которые являются продолжением друг друга.Каждый ролик содержит ровно 1440 различных кадров (1 мин. экранного времени). В начале все кадры хранятся в одной директории.

После работы программы каждый ролик должен быть помещён в свою директорию, а у каждого кадра расширение должно быть заменено на четырехзначный номер кадра (не меняя название файла), начиная с "0000":
*.jpg => *.<0000-1439>

Время работы программы 0.01*n*log2n сек, где n - число файлов. Тем, кому удастся восстановить не только фрагменты, но и направление движения, будет даваться бонус.

Можно использовать стандартные библиотеки и любые средства, поставляемые в исходниках, для чтения и обработки jpg-файлов.