Đếm cặp đoạn giao nhau
Xem dưới dạng PDF
Gửi bài giải
Điểm:
20
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Trên mặt phẳng toạ độ có \(N\) đoạn thẳng, tất cả đều song song với trục tung (thẳng đứng) hoặc song song với trục hoành (nằm ngang). Tý muốn đếm số cặp đoạn thẳng giao nhau (kể cả giao tại đầu mút). Hãy giúp Tý viết chương trình đếm nhanh.
Định dạng đầu vào
- Dòng đầu chứa số nguyên \(N\) (\(1 \le N \le 10^5\)).
- \(N\) dòng tiếp theo, mỗi dòng chứa bốn số nguyên \(x_1, y_1, x_2, y_2\) (\(-10^6 \le x_i, y_i \le 10^6\)) mô tả một đoạn thẳng hoặc nằm ngang (\(y_1 = y_2, x_1 < x_2\)) hoặc thẳng đứng (\(x_1 = x_2, y_1 < y_2\)).
Định dạng đầu ra
- In ra số cặp đoạn giao nhau.
Ví dụ
Input:
5
1 1 5 1
2 0 2 4
3 2 3 5
4 1 4 3
6 0 6 2
Output:
4
Ràng buộc
- Subtask 1 (20%): \(N \le 10^2\).
- Subtask 2 (30%): \(N \le 10^3\).
- Subtask 3 (50%): \(N \le 10^5\).
Nhận xét