Ambil wilayah 2D ruang yang dibagi menjadi elemen-elemen unit square yang selaras dengan pusatnya disejajarkan pada interval integer. Tepi dikatakan internal jika dibagikan oleh dua elemen, jika tidak itu adalah tepi eksternal.
Tujuan Anda adalah untuk menemukan jumlah minimum elemen tetangga yang harus dilalui untuk mencapai tepi luar mulai dari pusat setiap elemen, yang dikenal sebagai traversal distance
, atau distance
singkatnya. Anda hanya dapat melintasi melalui tepi (yaitu tidak ada pemotongan sudut / gerakan diagonal). Perhatikan bahwa "elemen eksterior" (elemen yang memiliki setidaknya satu tepi eksternal) dianggap perlu melintasi 0
elemen tetangga untuk mencapai tepi eksterior ..
Memasukkan
Input adalah daftar koordinat pasangan integer non-negatif yang menunjukkan (x, y) pusat semua elemen. Diasumsikan tidak ada elemen yang tumpang tindih (yaitu pasangan x / y secara unik mengidentifikasi elemen). Anda mungkin tidak menganggap apa pun tentang urutan input elemen.
Anda dapat mengubah asal input ke lokasi mana pun (mis. 0,0 atau 1,1, dll.).
Anda dapat mengasumsikan bahwa semua elemen input terhubung, atau dengan kata lain dimungkinkan untuk melakukan perjalanan dari satu elemen ke elemen lain menggunakan aturan di atas. Perhatikan bahwa ini tidak berarti bahwa wilayah 2D hanya terhubung; mungkin ada lubang di dalamnya.
Contoh: berikut ini adalah input yang tidak valid.
0,0
2,0
pengecekan kesalahan tidak diperlukan.
Input mungkin dari sumber apa pun (file, stdio, parameter fungsi, dll.)
Keluaran
Output harus berupa daftar koordinat yang mengidentifikasi setiap elemen, dan jarak integer yang sesuai dilalui untuk mencapai suatu edge. Output mungkin dalam urutan elemen apa pun yang diinginkan (mis. Anda tidak perlu menampilkan elemen dalam urutan yang sama yang diterima sebagai input).
Outputnya bisa ke sumber mana saja (file, stdio, nilai pengembalian fungsi, dll.)
Output apa pun yang cocok dengan koordinat elemen dengan jarak eksteriornya baik-baik saja, misalnya semua ini baik-baik saja:
x,y: distance
...
[((x,y), distance), ...]
[(x,y,distance), ...]
Contohnya
Input contoh teks ada dalam formulir x,y
, dengan satu elemen per baris; Anda dipersilakan untuk membentuk kembali ini menjadi format input yang nyaman (lihat aturan format input).
Keluaran contoh teks dalam format x,y: distance
, dengan satu elemen per baris; sekali lagi, Anda dapat mengubah bentuk ini menjadi format ouput yang nyaman (lihat aturan format output).
Angka grafis memiliki batas kiri bawah sebagai (0,0), dan angka-angka di dalamnya mewakili jarak minimum yang diharapkan untuk mencapai tepi luar. Perhatikan bahwa angka-angka ini murni untuk tujuan demonstrasi saja; program Anda tidak perlu menampilkan ini.
Contoh 1
memasukkan:
1,0
3,0
0,1
1,2
1,1
2,1
4,3
3,1
2,2
2,3
3,2
3,3
Keluaran:
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
representasi grafis:
Contoh 2
memasukkan:
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
keluaran:
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
representasi grafis:
Contoh 3
memasukkan:
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
keluaran:
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
representasi grafis:
Mencetak gol
Ini golf kode. Kode terpendek dalam byte menang. Celah standar berlaku. Setiap bawaan selain dari yang dirancang khusus untuk memecahkan masalah ini diizinkan.