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

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

선분 교차 3

면접 대비

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

요약
정수 좌표로 주어진 두 선분이 교차하는지 판정하고, 한 점에서 만나면 그 교점의 좌표를 출력한다.
난이도

보통10점 중 7점

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

문제

2차원 좌표 평면 위의 두 선분 L1, L2가 주어졌을 때, 두 선분이 교차하는지 아닌지 구해보자. 한 선분의 끝 점이 다른 선분이나 끝 점 위에 있는 것도 교차하는 것이다.

L1의 양 끝 점은 (x1, y1), (x2, y2), L2의 양 끝 점은 (x3, y3), (x4, y4)이다.

입력

첫째 줄에 L1의 양 끝 점 x1, y1, x2, y2가, 둘째 줄에 L2의 양 끝 점 x3, y3, x4, y4가 주어진다.

출력

L1과 L2가 교차하면 첫째 줄에 1, 아니면 0을 출력한다.

두 선분이 한 점에서 교차하는 경우 둘째 줄에 교차하는 점의 x좌표와 y좌표를 공백으로 구분해 출력한다. 한 점에서 교차하지 않는 경우에는 둘째 줄을 출력하지 않는다.

좌표의 절대/상대 오차는 10-9까지 허용한다.

제한

  • -1,000,000 ≤ x1, y1, x2, y2, x3, y3, x4, y4 ≤ 1,000,000
  • x1, y1, x2, y2, x3, y3, x4, y4는 정수
  • 선분의 길이는 0보다 크다.

예제10

  1. 예제 1

    입력
    1 1 5 5
    1 5 5 1
    
    예상 출력
    1
    3 3
    
  2. 예제 2

    입력
    1 1 5 5
    6 10 10 6
    
    예상 출력
    0
    
  3. 예제 3

    입력
    1 1 5 5
    5 5 1 1
    
    예상 출력
    1
    
  4. 예제 4

    입력
    1 1 5 5
    3 3 5 5
    
    예상 출력
    1
    
  5. 예제 5

    입력
    1 1 5 5
    3 3 1 3
    
    예상 출력
    1
    3 3
    
  6. 예제 6

    입력
    1 1 5 5
    5 5 9 9
    
    예상 출력
    1
    5 5
    
  7. 예제 7

    입력
    1 1 5 5
    6 6 9 9
    
    예상 출력
    0
    
  8. 예제 8

    입력
    1 1 5 5
    5 5 1 5
    
    예상 출력
    1
    5 5
    
  9. 예제 9

    입력
    1 1 5 5
    6 6 1 5
    
    예상 출력
    0
    
  10. 예제 10

    입력
    2 8 9 23
    1 10 9 8
    
    예상 출력
    1
    2.7313432835820897 9.5671641791044770