Tam giác vuông

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1200 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Trên mặt phẳng tọa độ \(Oxy\)\(n\) điểm phân biệt.

Một tam giác được gọi là tam giác vuông song song trục tọa độ nếu:

  • Tam giác đó là tam giác vuông.
  • Hai cạnh tạo nên góc vuông lần lượt song song với hai trục tọa độ \(Ox\)\(Oy\).

Nói cách khác, nếu đỉnh vuông của tam giác là điểm \(A\) thì tồn tại:

  • Một cạnh góc vuông nằm ngang (song song với \(Ox\)).
  • Một cạnh góc vuông nằm dọc (song song với \(Oy\)).

Hãy đếm số bộ ba điểm phân biệt có thể tạo thành một tam giác vuông song song trục tọa độ.

Input

  • Dòng đầu tiên chứa số nguyên \(n\) (\(1 \le n \le 10^5\)).
  • \(n\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(x_i, y_i\) là tọa độ của điểm thứ \(i\) (\(-10^9 \le x_i, y_i \le 10^9\)).

Output

  • In ra một số nguyên duy nhất là số lượng tam giác vuông song song trục tọa độ được tạo thành từ các điểm đã cho.

Example

Test 1

Input
4
0 0
0 1
1 0
1 1
Output
4
Note

\(4\) tam giác thỏa mãn:

  • \((0,0), (0,1), (1,0)\)
  • \((0,0), (1,0), (1,1)\)
  • \((0,0), (0,1), (1,1)\)
  • \((0,1), (1,0), (1,1)\)

Constraints

  • \(1 \le n \le 10^5\).
  • \(-10^9 \le x_i, y_i \le 10^9\).
  • Mọi điểm trong dữ liệu đều phân biệt.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.