Lấy một vùng 2D của không gian được chia thành các phần tử vuông đơn vị được căn chỉnh theo trục với tâm của chúng được căn chỉnh theo các khoảng nguyên. Một cạnh được gọi là bên trong nếu nó được chia sẻ bởi hai yếu tố, nếu không nó là một cạnh bên ngoài.
Mục tiêu của bạn là tìm ra số lượng tối thiểu các phần tử lân cận phải đi qua để đạt được cạnh bên ngoài bắt đầu từ trung tâm của mỗi phần tử, được gọi là traversal distance
, hoặc distance
viết tắt. Bạn chỉ có thể đi qua một cạnh (tức là không có chuyển động cắt góc / đường chéo). Lưu ý rằng "các yếu tố bên ngoài" (các yếu tố có ít nhất một cạnh bên ngoài) được coi là cần phải đi qua 0
các yếu tố lân cận để đạt được cạnh bên ngoài ..
Đầu vào
Đầu vào là danh sách các tọa độ cặp số nguyên không âm biểu thị (x, y) của tâm của tất cả các phần tử. Giả định không có phần tử chồng lấp (nghĩa là một cặp x / y xác định duy nhất một phần tử). Bạn không thể giả định bất cứ điều gì về thứ tự đầu vào phần tử.
Bạn có thể chuyển đổi nguồn gốc của đầu vào sang bất kỳ vị trí nào (ví dụ 0,0 hoặc 1,1, v.v.).
Bạn có thể giả định rằng tất cả các yếu tố đầu vào được kết nối, hay nói cách khác, có thể đi từ bất kỳ một yếu tố nào đến bất kỳ yếu tố nào khác bằng cách sử dụng các quy tắc ở trên. Lưu ý rằng điều này không có nghĩa là khu vực 2D được kết nối đơn giản; nó có thể có lỗ bên trong của nó.
Ví dụ: sau đây là một đầu vào không hợp lệ.
0,0
2,0
kiểm tra lỗi là không cần thiết.
Đầu vào có thể từ bất kỳ nguồn nào (tệp, stdio, tham số hàm, v.v.)
Đầu ra
Đầu ra phải là một danh sách các tọa độ xác định từng phần tử và khoảng cách nguyên tương ứng đi qua để đến một cạnh. Đầu ra có thể theo bất kỳ thứ tự phần tử nào mong muốn (ví dụ: bạn không cần các phần tử đầu ra theo cùng thứ tự nhận làm đầu vào).
Đầu ra có thể là bất kỳ nguồn nào (tệp, stdio, giá trị trả về của hàm, v.v.)
Bất kỳ đầu ra nào khớp với tọa độ của phần tử với khoảng cách bên ngoài của nó đều ổn, ví dụ: tất cả các đầu ra này đều ổn:
x,y: distance
...
[((x,y), distance), ...]
[(x,y,distance), ...]
Ví dụ
Đầu vào ví dụ văn bản có dạng x,y
, với một phần tử trên mỗi dòng; bạn có thể định hình lại định dạng này thành định dạng đầu vào thuận tiện (xem quy tắc định dạng đầu vào).
Kết quả ví dụ văn bản có định dạng x,y: distance
, với một phần tử trên mỗi dòng; một lần nữa, bạn được chào đón để định hình lại nó thành một định dạng ouput thuận tiện (xem quy tắc định dạng đầu ra).
Các hình đồ họa có giới hạn dưới bên trái là (0,0) và các số bên trong biểu thị khoảng cách tối thiểu dự kiến di chuyển để đạt đến cạnh bên ngoài. Lưu ý rằng những số liệu này hoàn toàn chỉ dành cho mục đích trình diễn; chương trình của bạn không cần phải xuất những thứ này.
ví dụ 1
đầu vào:
1,0
3,0
0,1
1,2
1,1
2,1
4,3
3,1
2,2
2,3
3,2
3,3
Đầu ra:
1,0: 0
3,0: 0
0,1: 0
1,2: 0
1,1: 1
2,1: 0
4,3: 0
3,1: 0
2,2: 1
2,3: 0
3,2: 0
3,3: 0
biểu diễn đồ họa:
Ví dụ 2
đầu vào:
4,0
1,1
3,1
4,1
5,1
6,1
0,2
1,2
2,2
3,2
4,2
5,2
6,2
7,2
1,3
2,3
3,3
4,3
5,3
6,3
7,3
8,3
2,4
3,4
4,4
5,4
6,4
3,5
4,5
5,5
đầu ra:
4,0: 0
1,1: 0
3,1: 0
4,1: 1
5,1: 0
6,1: 0
0,2: 0
1,2: 1
2,2: 0
3,2: 1
4,2: 2
5,2: 1
6,2: 1
7,2: 0
1,3: 0
2,3: 1
3,3: 2
4,3: 2
5,3: 2
6,3: 1
7,3: 0
8,3: 0
2,4: 0
3,4: 1
4,4: 1
5,4: 1
6,4: 0
3,5: 0
4,5: 0
5,5: 0
biểu diễn đồ họa:
Ví dụ 3
đầu vào:
4,0
4,1
1,2
3,2
4,2
5,2
6,2
8,2
0,3
1,3
2,3
3,3
4,3
5,3
6,3
7,3
8,3
9,3
1,4
2,4
3,4
4,4
5,4
6,4
7,4
8,4
9,4
2,5
3,5
4,5
5,5
6,5
9,5
10,5
11,5
3,6
4,6
5,6
9,6
10,6
11,6
6,7
7,7
8,7
9,7
10,7
11,7
đầu ra:
4,0: 0
4,1: 0
1,2: 0
3,2: 0
4,2: 1
5,2: 0
6,2: 0
8,2: 0
0,3: 0
1,3: 1
2,3: 0
3,3: 1
4,3: 2
5,3: 1
6,3: 1
7,3: 0
8,3: 1
9,3: 0
1,4: 0
2,4: 1
3,4: 2
4,4: 2
5,4: 2
6,4: 1
7,4: 0
8,4: 0
9,4: 0
2,5: 0
3,5: 1
4,5: 1
5,5: 1
6,5: 0
9,5: 0
10,5: 0
11,5: 0
3,6: 0
4,6: 0
5,6: 0
9,6: 0
10,6: 1
11,6: 0
6,7: 0
7,7: 0
8,7: 0
9,7: 0
10,7: 0
11,7: 0
biểu diễn đồ họa:
Chấm điểm
Đây là mã golf. Mã ngắn nhất trong byte thắng. Tiêu chuẩn áp dụng. Bất kỳ tích hợp nào khác ngoài những thiết kế đặc biệt để giải quyết vấn đề này đều được cho phép.