아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

미끄럼 대칭

시간 제한2초메모리 제한512 MB

요약
길이가 같은 두 선분이 주어졌을 때, 한 선분을 다른 선분으로 보내는 미끄럼 반사(직선에 대한 반사와 그 직선에 평행한 평행이동의 합성)를 구한다.
난이도

보통10점 중 7점

유형
기하, 수학, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

운동이란 두 점 사이의 거리를 보존하는 평면의 변환을 말한다. 즉, 운동에 의해 점 AA, BB가 각각 A1A_1, B1B_1으로 옮겨질 때 ∣A1B1∣=∣AB∣|A_1B_1| = |AB|이다.

운동의 한 종류로 미끄럼 대칭이 있다. 미끄럼 대칭은 어떤 직선 ll에 대한 대칭과 ll에 평행한 벡터만큼의 평행이동을 합성한 것이다. 이 벡터는 영벡터일 수도 있다. 그림은 선분에 미끄럼 대칭을 적용한 예를 보여 준다.

여기에 그림이 들어갑니다

길이가 같은 임의의 두 선분에 대해, 한 선분을 다른 선분으로 미끄럼 대칭으로 옮길 수 있다는 것이 알려져 있다.

서로 다른 두 점 AA, BB의 좌표와, AA, BB와 같은 거리에 있는 두 점 A1A_1, B1B_1의 좌표가 주어질 때, 점 AA를 A1A_1으로, 점 BB를 B1B_1으로 옮기는 미끄럼 대칭을 구하라.

입력

첫째 줄에 서로 다른 두 점 AA, BB의 좌표인 네 개의 정수가 주어진다. 둘째 줄에도 서로 다른 두 점 A1A_1, B1B_1의 좌표인 네 개의 정수가 주어진다. ∣A1B1∣=∣AB∣|A_1B_1| = |AB|임이 보장된다. 입력 파일의 모든 수의 절댓값은 1000을 넘지 않는다.

출력

찾은 미끄럼 대칭의 설명을 출력한다.

첫째 줄에는 대칭이 이루어지는 직선 ll 위의 서로 다른 두 점의 좌표를 출력하고, 둘째 줄에는 ll에 평행한 평행이동 벡터의 좌표를 출력한다. 실수는 소수점 이하 6자리 이상으로 출력한다.

예제2

  1. 예제 1

    입력
    1 1 3 2
    -1 1 -3 2
    
    예상 출력
    0.000000 0.000000 0.000000 1.000000
    0.000000 0.000000
    
  2. 예제 2

    입력
    1 1 3 1
    3 -1 5 -1
    
    예상 출력
    0.000000 0.000000 1.000000 0.000000
    2.000000 0.000000