[DHBB25 - DX36 - 10] Bài 2: Đếm hình chữ nhật

Xem dạng PDF

Gửi bài giải

Điểm: 55,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Có ~n~ đoạn thẳng được vẽ trên một mặt phẳng, đoạn thứ ~i~ nối hai điểm ~(x_{i,1}, y_{i,1})~ và ~(x_{i,2}, y_{i,2})~. Mỗi đoạn thẳng nằm ngang hoặc dọc và không suy biến thành một điểm. Cụ thể hơn, với mọi ~i \in [1, n]~: ~x_{i,1} = x_{i,2}~ hoặc ~y_{i,1} = y_{i,2}~, nhưng chỉ có đúng một trong các điều kiện này thỏa mãn. Chỉ các đoạn thuộc các loại khác nhau mới có thể cắt nhau: không có cặp đoạn thẳng ngang nào có điểm chung và không có cặp đoạn thẳng dọc nào có điểm chung.

Ta nói rằng bốn đoạn thẳng có chỉ số ~h_1, h_2, v_1~ và ~v_2~ sao cho ~h_1 < h_2~ và ~v_1 < v_2~ tạo thành một hình chữ nhật nếu thỏa mãn các điều kiện sau:

  • Đoạn thẳng ~h_1~ và ~h_2~ nằm ngang;
  • Đoạn thẳng ~v_1~ và ~v_2~ nằm dọc;
  • Đoạn thẳng ~h_1~ cắt đoạn thẳng ~v_1~;
  • Đoạn thẳng ~h_2~ cắt đoạn thẳng ~v_1~;
  • Đoạn thẳng ~h_1~ cắt đoạn thẳng ~v_2~;
  • Đoạn thẳng ~h_2~ cắt đoạn thẳng ~v_2~.

Yêu cầu: Hãy tính số cách chọn 4 đoạn thẳng để chúng tạo thành một hình chữ nhật. Lưu ý rằng các điều kiện ~h_1 < h_2~ và ~v_1 < v_2~ phải thỏa mãn.

Input

  • Dòng đầu tiên chứa số nguyên ~n~ (~1 \le n \le 5000~).
  • ~n~ dòng tiếp theo, mỗi dòng chứa 4 số nguyên ~x_{i,1}, y_{i,1}, x_{i,2}, y_{i,2}~ (~-5000 \le x_{i,1}, y_{i,1}, x_{i,2}, y_{i,2} \le 5000~).

Output

  • In một số nguyên là số cách chọn 4 đoạn thẳng tạo thành hình chữ nhật.

Sample Input 1

7
-1 4 -1 -2
6 -1 -2 -1
-2 3 6 3
2 -2 2 4
4 -1 4 3
5 3 5 1
5 2 1 2

Sample Output 1

7

Sample Input 2

5
1 5 1 0
0 1 5 1
5 4 0 4
4 2 4 0
4 3 4 5

Sample Output 2

0

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.