Các thách thức
Cho một số lượng hình chữ nhật tùy ý, xuất tổng số giao điểm của những hình đó khi được vẽ trong mặt phẳng 2D.
Một giao điểm ở đây được định nghĩa là một điểm P
được giao nhau bởi hai đường thẳng trực giao với nhau và cả hai đều không kết thúc P
.
Thí dụ
Mỗi hình chữ nhật ở đây được biểu thị bằng 2 tuple với tọa độ của góc trên bên trái trước và tọa độ của góc dưới bên phải thứ hai.
[(-8,6), (- 4, -2)] [(-4,9), (4,3)] [(2,10), (14,4)] [(1,7), (10, -6)] [(7,4), (10,2)] [(5,2), (9, -4)] [(-6, -4), (- 2, -6)]
Những hình chữ nhật đó tạo ra 6 giao điểm, đó phải là đầu ra của bạn.
- Như bạn có thể thấy trong hình trên, chạm vào hình chữ nhật sẽ không tạo giao điểm ở đây và không được tính.
- Bạn có thể mã hóa trực tràng theo bất kỳ định dạng nào bạn muốn. Làm rõ định dạng bạn sử dụng.
- Nếu nhiều hình chữ nhật cắt nhau tại cùng một điểm thì nó chỉ được tính là một giao điểm.
- Các tọa độ sẽ luôn là số nguyên.
- Sẽ không có bất kỳ hình chữ nhật trùng lặp nào trong đầu vào.
- Bạn sẽ luôn nhận được ít nhất một hình chữ nhật làm đầu vào.
- Bạn không thể sử dụng bất kỳ nội dung nào giải quyết vấn đề này trực tiếp. Ngoài ra, bạn không thể sử dụng nội dung giải phương trình. Tất cả các nội dung khác được cho phép.
- Đầu ra phải là một số nguyên duy nhất cho biết số giao điểm.
Quy tắc
- Chức năng hoặc chương trình đầy đủ cho phép.
- Quy tắc mặc định cho đầu vào / đầu ra.
- Tiêu chuẩn áp dụng.
- Đây là môn đánh gôn , do đó, số byte thấp nhất sẽ thắng. Tiebreaker là trình trước đó.
Các trường hợp thử nghiệm
Định dạng tương tự như trong ví dụ trên. Các hình chữ nhật được bọc trong một danh sách.
[[(-8,6), (- 4, -2)], [(- 4,9), (4,3)], [(2,10), (14,4)], [(1 , 7), (10, -6)], [(7,4), (10,2)], [(5,2), (9, -4)], [(- 6, -4), (-2, -6)]] -> 6 [[(-2,2), (6, -4)]] -> 0 [[(-12,10), (- 8,6)], [(- 14,6), (- 10,2)], [(- 10,6), (- 6,2)]] - > 0 [[(-4,10), (6,2)], [(- 2,8), (4,3)], [(1,6), (8.4)], [(2,11 ), (5,5)]] -> 10 [[(8.2), (12, -2)], [(10.0), (14, -4)]] -> 2 [[(0,2), (2,0)], [(0,1), (3,0)]] -> 1 [[(-10, -2), (- 6, -6)], [(- 6, -2), (- 2, -6)], [(- 8, -4), (- 4, -8)]] -> 3
Chúc mừng mã hóa!
[[(0,0),(1,2)],[(0,0),(2,1)]]
sẽ có 1 ngã tư?