
countTriangles
Cô Bảy đang dạy con trai mình hình tam giác. Con trai cô tên Tư, mới 3 tuổi nhưng rất thông minh. Co Bảy thấy thế ra một vấn đề khó cho bé Tư như sau: cô vẽ lên bảng N
điểm phân biệt, mỗi điểm có toạ độ (x,y)
. Cô muốn con trai mình đếm số hình tam giác hình thành được trên bảng đó. Cô dự tính rằng trong thời gian con trai mình tính toán, cô có thể ra ngoài để đi chơi.
Thế nhưng vỏ quýt dày có móng tay nhọn, bé Tư không thể kiểm tra hết được khi số điểm trên bảng quá lớn. Bé đã mang máy ra và viết đoạn mã để đếm nhanh số lượng tam giác trên bảng.
Ví dụ:
- Với
x = [1], y = [1]
, kết quảcountTriangles(x,y) = 0
Không có tam giác nào tạo được khi chỉ có 1 điểm. - Với
x = [1,2,4], y = [1,1,1]
, kết quảcountTriangles(x,y)=0
3 điểm(1,1)
,(2,1)
và(4,1)
thẳng hàng. - Với
x = [1,2,4,2], y = [1,1,1,3]
, kết quảcountTriangles(x,y) = 3
Có 3 bộ điểm tạo thành tam giác.
Đầu vào/đầu ra:
- [Thời gian chạy] 1 giây với C++, 6 giây với Java và C#, 8 giây vs Python và Js
- [Đầu vào] array.integer xpoints, ypoints
2 mảng có kích thước bằng nhau chứa toạ độ các điểm phân biệt1 <= xpoints.size(), ypoints.size() <= 100
-1000 <= xpoints[i], ypoints[i] <= 1000 - [Đầu ra] integer
Số tam giác tạo được
Post Comment