시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
0.25 초 (추가 시간 없음) 512 MB 28 11 8 32.000%

문제

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

예제 입력 1

1 1 5 5
1 5 5 1

예제 출력 1

1
3 3

예제 입력 2

1 1 5 5
6 10 10 6

예제 출력 2

0

예제 입력 3

1 1 5 5
5 5 1 1

예제 출력 3

1

예제 입력 4

1 1 5 5
3 3 5 5

예제 출력 4

1

예제 입력 5

1 1 5 5
3 3 1 3

예제 출력 5

1
3 3

예제 입력 6

1 1 5 5
5 5 9 9

예제 출력 6

1
5 5

예제 입력 7

1 1 5 5
6 6 9 9

예제 출력 7

0

예제 입력 8

1 1 5 5
5 5 1 5

예제 출력 8

1
5 5

예제 입력 9

1 1 5 5
6 6 1 5

예제 출력 9

0

예제 입력 10

2 8 9 23
1 10 9 8

예제 출력 10

1
2.7313432835820897 9.5671641791044770

출처