Vấn đề : Đếm số lượng lỗ trong một đa giác được kết nối. Khả năng kết nối của đa giác được đảm bảo bởi điều kiện là mọi tam giác trong tam giác đầu vào chia sẻ ít nhất 1 cạnh với một tam giác khác và chỉ có một bộ tam giác được kết nối như vậy.
Đầu vào là danh sách L
các n
điểm trong mặt phẳng và danh sách T
3 điểm với các mục từ 0...n-1
. Đối với mỗi mục trong T
tuple (t_1,t_2,t_3)
đại diện cho ba đỉnh (từ danh sách L
) của một tam giác trong tam giác. Lưu ý rằng đây là hình tam giác theo nghĩa 'tam giác đa giác' , vì điều này sẽ không bao giờ có hai hình tam giác trong T
sự chồng chéo đó. Một quy định bổ sung là bạn sẽ không phải vệ sinh đầu vào L
và T
không chứa bất kỳ sự lặp lại nào.
Ví dụ 1 : Nếu L = {{0,0},{1,0},{0,1},{1,2}}
và T = {{0,1,2},{1,2,3}}
sau đó đa giác được chỉ định có số lỗ là 0.
Ví dụ 2 : Nếu L = {{0,0},{1,0},{2,0},{2,1},{2,2},{1,2},{0,2},{0,1},{.5,.5},{1.5,.5},{1.5,1.5},{.5,1.5}}
và T = {{5,6,11},{5,10,11},{4,5,10},{3,8,10},{2,3,9},{2,8,9},{1,2,8},{0,1,8},{0,8,11},{0,7,11},{6,7,11},{3,4,10}}
sau đó đầu vào đa giác sẽ dẫn đến đầu ra là 2.
Nhiệm vụ là viết chương trình (hoặc hàm) ngắn nhất nhận L
và T
làm đầu vào và trả về số lượng lỗ. 'Người chiến thắng' sẽ được công nhận là mục có số lượng ký tự ít nhất (ngày kết thúc dự kiến là ngày 1 tháng 6).
Định dạng đầu vào mẫu (lưu ý lập chỉ mục 0):
0,0
1,0
0,1
1,2
0,1,2
1,2,3
T=1,2,3/1,4,5
được kết nối nhưng không được kết nối cạnh)
T=1,2,3/1,2,4/5,6,7/5,6,8
. Mỗi tam giác chia sẻ một cạnh với một tam giác khác, nhưng tam giác bị ngắt kết nối