시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 512 MB0000.000%

문제

Движением называют преобразование плоскости, сохраняющее расстояния между точками, то есть если A1 и B1 – образы точек A и B при движении, то |A1B1| = |AB|. 

Одной из разновидностей движения является скользящая симметрия. Скользящей симметрией называют композицию симметрии относительно некоторой прямой l и переноса на вектор, параллельный l (этот вектор может быть нулевым). На рисунке показан пример применения скользящей симметрии к отрезку.

ЗДЕСЬ БУДЕТ РИСУНОК

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

Требуется по координатам двух различных точек A и B и двух точек A1 и B1, находящихся на таком же расстоянии, найти скользящую симметрию, переводящую точку A в точку A1, а точку B в точку B1.

입력

В первой строке входного файла находятся четыре целых числа – координаты двух различных точек A и В. Во второй строке также находятся четыре целых числа – координаты двух различных точек A1 и В1. Гарантируется, что |A1B1| = |AB|. Все числа во входном файле по модулю не превышают 1000.

출력

Выведите в выходной файл описание искомой скользящей симметрии.

В первой строке выведите координаты двух различных точек, лежащих на прямой l, относительно которой выполняется симметрия, а во второй – координаты вектора, параллельного этой прямой, на который осуществляется перенос. Выводите вещественные числа не менее чем с 6 знаками после десятичной точки.

예제 입력 1

1 1 3 2
-1 1 -3 2

예제 출력 1

0.000000 0.000000 0.000000 1.000000
0.000000 0.000000

예제 입력 2

1 1 3 1
3 -1 5 -1

예제 출력 2

0.000000 0.000000 1.000000 0.000000
2.000000 0.000000