Помогите с кодом на питоне пожалуйста
ускорьте этот код что бы он выполнялся как можно быстрее если понадобиться можно переделать под другой язык главное что бы работал быстрее:
def count_non_intersecting_segments(N, segments):
# Function to check if two segments intersect
def intersects(segment1, segment2):
a1, b1 = segment1
a2, b2 = segment2
return not (b1 < b2 and a1 < a2 or b2 < b1 and a2 < a1)
# Array to keep track of intersection count for each segment
intersection_count = [0] * N
# Check every pair of segments
for i in range(N):
for j in range(i + 1, N):
if intersects(segments[i], segments[j]):
intersection_count[i] += 1
intersection_count[j] += 1
# Count segments that do not intersect with any other segment
non_intersecting_count = sum(
1 for count in intersection_count if count == 0)
return non_intersecting_count
# Read input
N = int(input().strip())
segments = [tuple(map(int, input().strip().split())) for _ in range(N)]
# Calculate and print the result
print(count_non_intersecting_segments(N, segments))
def count_non_intersecting_segments(N, segments):
# Function to check if two segments intersect
def intersects(segment1, segment2):
a1, b1 = segment1
a2, b2 = segment2
return not (b1 < b2 and a1 < a2 or b2 < b1 and a2 < a1)
# Initialize intersection count for each segment
intersection_count = [0] * N
# Check every segment with each of the remaining segments
for i in range(N):
for j in range(i + 1, N):
if intersects(segments[i], segments[j]):
intersection_count[i] += 1
intersection_count[j] += 1
# Count segments that do not intersect with any other segment
non_intersecting_count = sum(
1 for count in intersection_count if count == 0)
return non_intersecting_count
# Read input
N = int(input().strip())
segments = [tuple(map(int, input().strip().split())) for _ in range(N)]
# Calculate and print the result
print(count_non_intersecting_segments(N, segments))