Arka fon
Balçık kalıpları harika. Onları yiyecek kaynakları olan bir yüzeye yerleştirirseniz, yiyecekleri bulmak için dalları yayılır, daha sonra kaynaklar arasında bir bağlantı ağı oluştururlar. Bu meydan okumada, yiyecek arayan bir balçık kalıp simüle etmelisiniz. Ayrıca, bu kalıp yeterli bulunduğunda durur.
Giriş
Girdileriniz, L
dilinizin yerel biçimindeki 2B tamsayı koordinatlarının bir listesi ve negatif olmayan bir tam sayı olmalıdır N
. Listenin kopyasız L
olacağı garanti edilir, ancak sıralanmayabilir. Girdi N
0 ile kapsanan uzunluk arasındadır L
.
Liste L
, gıda kaynakları için bir dizi koordinatı temsil eder. Örneğin, liste
[(0,0),(2,-1),(3,1),(0,4),(5,5)]
görsel olarak yorumlanabilir
o
o
o
o
o
Çıktı
Çıktınız, K
girişle aynı formatta 2D tamsayı koordinatlarının kopyasız başka bir listesidir . Balçık kalıbının oluşturduğu ağı temsil eder ve aşağıdaki koşulları karşılamalıdır:
- Kesişimi
L
veK
boyutu tam olarakN
. - Küme
K
, tamsayı ızgarasının bir alt kümesi olarak bağlanır (dikey veya çapraz bitişiklerle). - Herhangi bir koordinatı
K
kaldırılırsa, artık ilk iki koşulu karşılamaz.
N = 0
Çıktının boş bir liste olması gerektiğini unutmayın .
Yukarıdaki liste için kabul edilebilir bir çıkış örneği L
ve N = 4
olur
[(0,0),(0,1),(0,2),(0,3),(0,4),(1,4),(2,4),(3,3),(3,2),(3,1),(3,5),(4,5),(5,5)]
olarak görselleştirilebilir
xxO
Oxx
x x
x x
x O
O
o
Her yerde O
temsil eder hem de koordine L
ve K
ve her x
bir koordinat temsil K
değil de L
. Diğer çıktılar da kabul edilebilir ve "dalları" mümkün olan en kısa sürede yapmak zorunda değilsiniz. Örneğin, bu da kabul edilebilir bir çözümdür:
xxOxx
Oxx x
x x
x x
x o x
O x
Ox
kurallar
Hem girdi hem de çıktı kümeler veya diğer veri türleri değil listeler olmalıdır. Koordinatlar kendileri liste veya tuple olabilir. Gerekirse iki girişin sırasını değiştirebilirsiniz.
Tam bir program veya bir işlev yazabilirsiniz. En düşük bayt sayısı kazanır ve standart boşluklara izin verilmez.
Test Durumları
Programınızın tüm geçerli değerleri için bu listeler üzerinde çalışması gerekir N
.
[]
[(2,3)]
[(0,0),(1,0),(0,1),(1,1)]
[(0,0),(2,-1),(3,1),(0,4),(5,5)]
[(0,0),(1,0),(2,0),(3,0),(0,3),(1,3),(2,3),(3,3)]
[(0,0),(1,0),(2,0),(3,0),(0,3),(1,3),(2,3),(3,3),(0,1),(0,2),(3,1),(3,2),(8,1),(8,2),(-5,1),(-5,2)]
[(0,0),(20,0),(15,15),(-10,4),(-10,3),(0,-5),(7,6),(7,7),(8,8),(9,8),(10,-2),(-1,12),(-3,10)]
[(0,0),(1,0),(2,0),(3,0),(5,0),(6,0),(7,0),(0,9),(1,9),(2,9),(3,8),(4,9),(5,10),(6,10),(7,9),(3,3),(4,4),(5,5)]
görsel:
===
o
===
oo
oo
===
o
o
o
o
o
===
oooo
oooo
===
oooo
o o o o
o o o o
oooo
===
o
o
o
oo
o
o
o
o
o o
o
o
===
oo
ooo o o
o
o
o
o
oooo ooo