Submit | All submissions | Best solutions | Back to list |
CS345A1 - Red Blue Line Segments |
There are n vertical line segments colored red and there are n horizontal line segments colored blue. We wish to find the number of red-blue pairs of intersecting segments.
These line segments are inside a unit square. Each blue segment is created by generating 3 random numbers (x1, x2, y) in the interval [0, 1]. These 3 numbers represent the segment joining (x1, y) and (x2, y). Red segments are generated similarly.
Input
First line contains the number of segments n (n ≤ 100000)
next n lines define the blue segments. Each line contains 3 floating point numbers (in [0, 1]) x1 x2 y representing the segment joining (x1, y) and (x2, y).
next n lines define the red segments. Each line contains 3 floating point numbers (in [0, 1]) y1 y2 x representing the segment joining (x, y1) and (x, y2).
Output
Print a single line containing the number of intersections.
Note: Touching line segments also count as intersecting. For example - blue segment joining (0.1, 0.2) and (0.3, 0.2) intersects with red segment joining (0.3, 0.4) and (0.3, 0.2).
Example
Input: 3 0.36295 0.557494 0.184032 0.0479258 0.214097 0.508344 0.234284 0.969098 0.739363 0.499323 0.739797 0.138495 0.829265 0.22551 0.290582 0.791082 0.069214 0.450979 Output: 4
Added by: | praveen123 |
Date: | 2015-08-22 |
Time limit: | 2s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: ASM64 GOSU JS-MONKEY |
Resource: | Algorithms II IIT Kanpur |
hide comments
2021-11-06 10:52:33 Christoph Dürr
The time limit is too harsh for Python. I have a solution which runs locally in about 2 seconds using pypy on a maximum size instance. By the way, don't worry too much about overlapping, as the input consists of uniformly drawn random numbers. |
|
2015-08-25 22:59:17
no neither red nor blue line should intersect else number of intersecting points would be infinite |
|
2015-08-25 18:01:03 Pranjal Shankhdhar
@Rishav Most of the guys are of IIT Kanpur. See Resource. |
|
2015-08-25 13:32:56 Rishav Goyal
something very strange, > 900 submissions in 3 days :O . /\ :P :P |
|
2015-08-24 08:44:22
So are we supposed to count red-red intersection points? And how about: 2 0 0.5 0.5 0.5 1 0.5 0 0.5 0.5 0.5 1 0.5 Is this 1 or 4? |
|
2015-08-23 22:42:40 Saurav Shekhar
@beetee : Yes, 2 red / blue segments can overlap. |
|
2015-08-23 07:51:26
Is it possible that 2 red lines intersect among themselves? |