Yarın 4 Mayıs olduğu için, sizi yarın gelen tüm kötü şakalara zihinsel olarak hazırlamak için küçük bir Star Wars temalı yazı.
backstory
Galaktik senatonun bir oturumu sırasında tüm senatörler bir n*n
ızgarada oturuyorlar . Ani bir JarJar gribi salgını (sonsuza kadar süren ve enfekte olanların JarJar Binks gibi konuşmasına neden olan) bazı senatörlerin enfekte olmasına neden olur.
Aşağıda , virüslü senatörlerin 6*6
bulunduğu bir ızgara içeren bir örnek verilmiştir :X
[[0,5],[1,4],[2,3],[2,1],[3,3],[3,0],[4,5],[0,5]]
Bundan sonra enfeksiyon adım adım yayılmaya başlar. İki senatör ızgara üzerinde bir kenarı paylaşırlarsa bitişiktir (yani üst, alt, sağ, sol), yani köşegenleri hariç tutuyoruz.
Bir senatörün 2,3 veya diğer 4 senatöre bitişik olabileceği sonucuna varabilir ve enfeksiyon için aşağıdaki kuralları talep edebiliriz:
- Enfekte olmuş bir senatör sonsuza dek enfekte kalır
- Bir senatör bir önceki adımda 2 veya daha fazla enfekte olmuş senatöre bitişikse bir adımda enfekte olur
Enfeksiyonun ilk 2 adımını gösteren önceki ızgaraya bir örnek:
Nexts adımlarından sonra tüm senato enfekte olacak
SENİN GÖREVİN
Kodunuzun, farklı olmayan bir liste n*n
veya koordinatlar gibi geçersiz girişleri işlemesi gerekmez .
Kodunuz, tamsayıların (veya ikili bir ızgara veya dilinize uyan başka bir biçim) çiftlerinin bir listesini ve bir tamsayı n
(listeden başka bir biçim kullanırsanız gereksiz olabilir ) girdi olarak alır :
8 [[1,2],[1,1],[7,4],[2,7],[4,3]]
n, ızgaranın bir tarafı olması, yani ızgaranın bir * n ızgarası olacağı ve tamsayıların çiftlerinin listesi, başlangıçta enfekte olmuş senatörlerin hücrelerinin koordinatlarıdır.
Izgaranın sol alt kısmı [0,0] ve sağ üst kısmı [n-1, n-1] 'dir. Sol üst [0, n-1] 'dir.
Kodunuzun bir tamsayı çıkması gerekir:
-1
veya tüm ızgaraya hiçbir zaman tam olarak bulaşmayacaksa veya tüm ızgaraya bulaşmak için gereken minimum adım sayısı varsa, yanlış bir değer veya bir hata
Test senaryoları
6 [[0,5],[1,4],[2,3],[2,1],[3,3],[3,0],[4,5],[5,0]] => 7
4 [[1,1][0,3][1,0][3,0][3,3]] => 9
Bunun kod golf olduğunu unutmayın, bu nedenle bayttaki en kısa cevap kazanır!
n
? Maksimum değer var mı?
CellularAutomaton
...