선분 교차 2

면접 대비

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

요약
두 선분의 정수 좌표 끝점이 주어질 때, 끝점이 닿는 경우도 교차로 포함해 두 선분이 만나는지 판정한다.
난이도

보통10점 중 6점

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

문제

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

L1L_1의 양 끝 점은 (x1,y1)(x_1, y_1), (x2,y2)(x_2, y_2), L2L_2의 양 끝 점은 (x3,y3)(x_3, y_3), (x4,y4)(x_4, y_4)이다.

입력

첫째 줄에 L1L_1의 양 끝 점 x1,y1,x2,y2x_1, y_1, x_2, y_2가, 둘째 줄에 L2L_2의 양 끝 점 x3,y3,x4,y4x_3, y_3, x_4, y_4가 주어진다.

출력

L1L_1과 L2L_2가 교차하면 1, 아니면 0을 출력한다.

제한

  • −1 000 000≤x1,y1,x2,y2,x3,y3,x4,y4≤1 000 000-1\,000\,000 \le x_1, y_1, x_2, y_2, x_3, y_3, x_4, y_4 \le 1\,000\,000
  • x1,y1,x2,y2,x3,y3,x4,y4x_1, y_1, x_2, y_2, x_3, y_3, x_4, y_4는 정수
  • 선분의 길이는 0보다 크다.

예제5

  1. 예제 1

    입력
    1 1 5 5
    1 5 5 1
    
    예상 출력
    1
    
  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