
treasureLocating
Chị Đại và bé Mười tiếp tục cuộc hành trình đi tìm kho báu của mình sau khi không tìm được vàng từ những lần cố gắng trước đó. Lần này họ thám hiểm đến vùng biển Caribe nằm ở Đại Tây Dương xa xôi hẻo lánh. Họ có được một bản đồ về các điểm trên biển Caribe, gồm N
nút điểm quan trọng, được đánh số từ 1
đến N
, điểm thứ i
có tọa độ (x[i],y[i])
.
Truyền thuyết kể lại rằng những điểm nào là trọng tâm của 3 điểm khác bất kì thì rất có thể chỗ đó sẽ chứa kho báu chôn kín dưới lòng biển. Một điểm được gọi là trọng tâm của tập các điểm khác nếu tổng vectơ có hướng từ điểm đó đến các điểm còn lại bằng 0. Cụ thể G được gọi là trọng tâm của 3 điểm A B C nếu
Chị em nhà Mười muốn xác định chính xác những điểm có thể chứa kho báu. Bạn hãy giúp họ tìm ra các điểm chứa kho báu và sắp xếp lại thứ tự các điểm theo x
, nếu các điểm cùng tọa độ x
, sắp xếp theo y
.
Ví dụ:
- Với
points = [[4,-4],[2,-3]]
thìtreasureLocating(points) = []
do chỉ có 2 điểm nên không hình thành được bộ 4 điểm nào để có một trọng tâm. - Với
points = [[9,-1],[4,-9],[2,4],[5,-2]]
thìtreasureLocating(points) = [[5,-2]]
do điểm(5,-2)
là trọng tâm của 3 điểm còn lại. - Với
points = [[1,2],[3,2],[5,5],[4,5],[5,1],[2,2],[3,3],[3,0],[5,3],[3,6]]
thìtreasureLocating(points) = [[3,2],[3,3]]
. Hình minh họa dưới đây cho thấy 2 điểm(3,2)
và(3,3)
(ô vuông) là trọng tâm của 3 điểm khác. Kết quả được sắp xếp lại theo thứ tự tăng dần theo x, y.
Đầu ra/Đầu vào:
- [Thời gian chạy] 0.3 giây với C++, 1.8 giây với Java và C#, 2.4 giây vs Python và Js
- [Đầu vào] matrix.integers points
Tọa độ các điểm phân biệt trên bản đồ
Mỗi phần tử là một array.integers chứa 2 phần tử là tọa độx
vày
1 <= points.size() <= 100
points[i].size() = 2
-10000 <= points[i][j] <= 10000
- [Đầu ra] matrix.integers
Tọa độ các điểm chứa kho báu đã sắp xếp lại.
Định dạng cho mỗi điểm như đầu vào.
Post Comment