Eksenleri hizalanmış birim kare öğelerine bölünmüş 2B bir alan, merkezleri tamsayı aralıklarında hizalanmış olarak alın. Bir kenarın iki eleman tarafından paylaşılması durumunda dahili olduğu söylenir, aksi takdirde bir dış kenardır.
Amacınız, her bir elemanın merkezinden başlayarak traversal distance
veya distance
kısa olarak adlandırılan bir dış kenara ulaşmak için geçilmesi gereken minimum komşu eleman sayısını bulmaktır . Sadece bir kenardan geçebilirsiniz (yani köşe kesme / diyagonal hareket yok). "Dış elemanlar" ın (en az bir dış kenarı olan elemanlar) 0
bir dış kenara ulaşmak için komşu elemanlardan geçmesi gerektiği düşünülmektedir .
Giriş
Girdi, tüm öğelerin merkezini (x, y) gösteren negatif olmayan bir tam sayı çifti koordinatlarının bir listesidir. Üst üste binen eleman olmadığı varsayılmaktadır (yani bir x / y çifti bir elemanı benzersiz olarak tanımlamaktadır). Sen olabilir değil eleman girdi sipariş hakkında bir şey varsayalım.
Girişin kaynağını herhangi bir konuma (örneğin 0,0 veya 1,1 vb.) Dönüştürebilirsiniz.
Tüm giriş öğelerinin bağlı olduğunu veya başka bir deyişle yukarıdaki kuralları kullanarak herhangi bir öğeden başka bir öğeye seyahat etmek mümkün olduğunu varsayabilirsiniz. Bunun 2D bölgesinin basitçe bağlandığı anlamına gelmediğini unutmayın; içinde delikler olabilir.
Örnek: Aşağıdaki geçersiz bir giriş.
0,0
2,0
hata kontrolü gerekli değildir.
Giriş herhangi bir kaynaktan olabilir (dosya, stdio, fonksiyon parametresi, vb.)
Çıktı
Çıktı, her bir öğeyi tanımlayan koordinatların ve bir kenara ulaşmak için kat edilen karşılık gelen tamsayı mesafesinin bir listesi olmalıdır. Çıktı istenen herhangi bir eleman sırasına göre olabilir (örneğin, girdi ile aynı sırada çıktı elemanlarına ihtiyacınız yoktur).
Çıktı herhangi bir kaynağa olabilir (dosya, stdio, işlev dönüş değeri, vb.)
Öğenin dış mesafesiyle koordinatıyla eşleşen tüm çıktılar iyi, örneğin, bunların hepsi iyi:
x,y: distance
...
[((x,y), distance), ...]
[(x,y,distance), ...]
Örnekler
Metin örneği girişleri, x,y
her satırda bir öğe olacak şekilde formdadır ; bunu uygun bir giriş biçiminde yeniden şekillendirebilirsiniz (giriş biçimi kurallarına bakın).
Metin örneği çıktıları, x,y: distance
her satırda bir öğe olacak şekilde formattadır ; yine, bunu uygun bir çıkış biçiminde yeniden şekillendirebilirsiniz (çıkış biçimi kurallarına bakın).
Grafik rakamlar (0,0) olarak sol alt sınırlıdır ve içerideki sayılar bir dış kenara ulaşmak için beklenen minimum mesafeyi temsil eder. Bu rakamların yalnızca tanıtım amaçlı olduğunu unutmayın; programınızın bunların çıktısını almasına gerek yoktur.
örnek 1
giriş:
1,0
3,0
0,1
1,2
1,1
2,1
4,3
3,1
2,2
2,3
3,2
3,3
Çıktı:
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
grafik gösterim:
ÖRNEK 2
giriş:
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
çıktı:
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
grafik gösterim:
ÖRNEK 3
giriş:
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
çıktı:
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
grafik gösterim:
puanlama
Bu kod golf. Bayt cinsinden en kısa kod kazanır. Standart boşluklar geçerlidir. Bu sorunu çözmek için özel olarak tasarlananlar dışındaki yerleşik yapılara izin verilir.