Đế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