Đếm hình chữ nhật

Đề bài

Mô tả

Trên mặt phẳng có n đoạn thẳng. Đoạn thứ i nối hai điểm (xi,1,yi,1)(xi,2,yi,2). Mỗi đoạn không suy biến và là đoạn ngang (cùng tung độ) hoặc đoạn dọc (cùng hoành độ). Chỉ các đoạn khác loại mới có thể cắt nhau: không có hai đoạn ngang nào dùng chung điểm, và không có hai đoạn dọc nào dùng chung điểm.

Bốn đoạn với chỉ số h1,h2,v1,v2 thoả mãn h1<h2v1<v2 được gọi là tạo thành một hình chữ nhật nếu:

  • Hai đoạn h1,h2 là đoạn ngang.
  • Hai đoạn v1,v2 là đoạn dọc.
  • h1 cắt cả v1v2.
  • h2 cắt cả v1v2.

Hãy đếm số cách chọn ra bốn đoạn tạo thành hình chữ nhật theo điều kiện trên.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số lượng đoạn thẳng.
  • n dòng tiếp theo, mỗi dòng chứa bốn số nguyên xi,1,yi,1,xi,2,yi,2 mô tả hai đầu mút của đoạn thứ i.

Dữ liệu ra

In ra một số nguyên — số cách chọn bốn đoạn tạo thành hình chữ nhật.

Ràng buộc

  • 1n5000.
  • 5000xi,1,yi,1,xi,2,yi,25000.
  • Mỗi đoạn không suy biến và là đoạn ngang hoặc đoạn dọc.
  • Nếu hai đoạn có điểm chung thì một đoạn ngang và một đoạn dọc.

Ví dụ

Input Output Giải thích
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
7 7 bộ bốn đoạn tạo thành hình chữ nhật trong cấu hình này.
5
1 5 1 0
0 1 5 1
5 4 0 4
4 2 4 0
4 3 4 5
0 Không tồn tại bộ bốn đoạn nào thoả mãn.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0