Đếm bộ ba thẳng hàng

Xem dạng PDF

Gửi bài giải


Điểm: 0,50 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài

Cho ~N~ điểm phân biệt trên mặt phẳng tọa độ. Hãy đếm số bộ ba điểm nằm trên cùng một đường thẳng. Cần đếm số bộ ba chỉ số ~i~, ~j~, ~k~ thỏa mãn ~1 ≤ i < j < k ≤ N~ sao cho ~P_i~, ~P_j~, ~P_k~ thẳng hàng.

Dữ liệu vào

  • Dòng thứ nhất chứa số nguyên ~N~.
  • ~N~ dòng tiếp theo, dòng thứ ~i~ gồm hai số nguyên ~x_i~, ~y_i~ là tọa độ điểm ~P_i~.

Kết quả

  • In ra số bộ ba điểm thẳng hàng.

Giới hạn

  • ~3 ≤ N ≤ 2000~.
  • ~-10^9 ≤ x_i, y_i ≤ 10^9~.
  • Các điểm đôi một phân biệt.

Subtask

  • Subtask 1: 30% số điểm, ~N ≤ 500~.
  • Subtask 2: 70% số điểm còn lại, ~N ≤ 2000~.

Ví dụ

Dữ liệu vào

5
0 0
1 1
2 2
0 1
0 2

Dữ liệu ra

2

Giải thích

Có hai bộ ba thẳng hàng:

  • ~(0; 0)~, ~(1; 1)~, ~(2; 2)~.
  • ~(0; 0)~, ~(0; 1)~, ~(0; 2)~.

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.