6902.Intersection Points

Time Limit: 1s Memory Limit: 512MB

Given $n$ horizontal and vertical line segments, your task is to calculate the number of their intersection points.

You can assume that no parallel line segments intersect, and no endpoint of a line segment is an intersection point.

Input Format(From the terminal/stdin)

The first line has an integer $n$ : the number of line segments.

Then there are $n$ lines describing the line segments. Each line has four integers: $x_1$ , $y_1$ , $x_2$ and $y_2$ : a line segment begins at point $(x_1,y_1)$ and ends at point $(x_2,y_2)$ .

  • $1 \le n \le 10^5$
  • $-10^6 \le x_1 \le x_2 \le 10^6$
  • $-10^6 \le y_1 \le y_2 \le 10^6$
  • $(x_1,y_1) \neq (x_2,y_2)$

Output Format(To the terminal/stdout)

Print the number of intersection points.

Sample Input

Copy
3
2 3 7 3
3 1 3 5
6 2 6 6
 \n
 · · · \n
 · · · \n
 · · · \n

Sample Output

Copy
2
 \n
Source: CSES, Geometry, 1740

Submit

请先 登录

© 2025 FAQs