Главная > Детская игра со спичками
1996

N спичек (N ≤ 15) на плоскости образует фигуру как, например, изображено на рисунке:

Назовем фигуру B симметричной фигуре A, если существует такая ось симметрии, что отображая относительно ее исходную фигуру A, мы получим фигуру B. Очевидно, для любой заданной фигуры можно построить симметричную ей, переложив некоторые спички. В процессе перекладывания спички ломать нельзя. Накладывание спичек друг на друга не приводит к нарушению условия их расположения на плоскости. Например, из фигуры на вышеприведенном рисунке, могут быть получены фигуры, изображенные на следующих рисунках:


Требуется

Написать программу, для определения симметричной фигуры, получающейся из исходной перекладыванием минимального количества спичек.


Входные данные

Исходное расположение спичек задается в файле с именем INPUT.TXT. Первая строка файла содержит число N, далее следуют N строк, содержащих координаты концов каждой спички: (x1, y1); (x2, y2).


Выходные данные

Результат работы программы записывается в файл с именем OUTPUT.TXT, содержащий в первой строке количество переложенных спичек, далее следуют N строк с координатами концов спичек в результирующей фигуре.


Пример

input.txtoutput.txt
3
1 0 1 5
2 4 5 0
5 0 8 4
1
9 0 9 5
2 4 5 0
5 0 8 4


Примечания

  • Заведомо известно, что координаты концов спичек исходной и результирующей фигуры - целые числа (-100 ≤ x ≤ 100, -100 ≤ y ≤ 100).
  • Время тестирования ограниченно 2 минутами.
  • Задача оценивается в 33 балла.

 
Hosted by uCoz