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

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

바이트앤티안 제국의 마을

시간 제한1초메모리 제한128 MB

요약
n개의 직선 각각에 대해 양쪽에 있는 교점 개수의 차의 절댓값을 구한다.
난이도

보통10점 중 7점

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

문제

"선분은 두 점을 잇는 가장 짧은 경로다"라는 신념은 바이트앤티안 제국 도로 설계자들의 원칙이었다. 그래서 제국의 모든 도로는 나라 전체를 가로지르는 완전한 직선으로 건설되었다. 두 도로가 만나는 교차점마다 바이트앤티안 사람들은 마을을 세웠다. 혼동을 막기 위해, 그들은 한 점에서 세 개 이상의 도로가 만나도록 건설하지 않았다.

황제는 이제 나라를 마을 수가 최대한 비슷한 두 개의 주로 나누려 한다. 기존 도로 중 하나가 두 주의 경계선이 된다. 경계선 도로 위에 정확히 놓인 마을은 어느 주에도 속하지 않고 오직 황제의 관할이 된다. 황제는 각 도로에 대해, 그 도로의 한쪽에 있는 마을 수와 반대쪽에 있는 마을 수의 차이의 절댓값을 알고 싶어 한다.

모든 도로에 대해 이 값을 계산하는 프로그램을 작성하라.

입력

첫째 줄에 도로의 수를 나타내는 정수 nn (1≤n≤10001 \le n \le 1000)이 주어진다.

다음 nn개의 줄에는 각각 네 정수 x1 y1 x2 y2x_1\ y_1\ x_2\ y_2 (−1000≤x1,y1,x2,y2≤1000-1000 \le x_1, y_1, x_2, y_2 \le 1000)가 주어진다. (x1,y1)(x_1, y_1)과 (x2,y2)(x_2, y_2)는 서로 다른 두 점이며, 도로는 이 두 점을 지나는 직선이다.

서로 완전히 같은 도로는 없으며, 어떤 세 도로도 한 점에서 만나지 않는다. 두 도로의 모든 교차점은 나라 내부에 있다.

출력

nn개의 줄을 출력한다. ii번째 줄에는 입력 순서로 ii번째 도로에 대한 답, 즉 그 도로의 한쪽에 있는 마을 수와 다른 쪽에 있는 마을 수의 차이의 절댓값을 정수로 출력한다. 도로 위에 놓인 마을은 세지 않는다.

힌트

예시 그림

예제에서 네 도로는 다섯 개의 마을을 만든다. 마을의 좌표는 (0,0)(0, 0), (1,0)(1, 0), (1,1)(1, 1), (2,0)(2, 0), (2,2)(2, 2)이다.

예제1

  1. 예제 1

    입력
    4
    1 -1 1 10
    0 0 1 0
    2 0 2 1
    4 4 -1 -1
    
    예상 출력
    1
    2
    3
    2