Mayın Tarlası , her bir mayın olmayan hücrenin sahip olduğu komşu mayının ipuçlarına dayanarak, dikdörtgen bir ızgarada mayın olan hücreleri ortaya çıkarmaya çalıştığınız zaman harcadığınız popüler bir bilgisayar oyunudur. Ve eğer oynamamışsanız, burada yapın .
Bir Mayın Tarlası ızgarası (aka yönetim kurulu) hakkındaki ilginç bir matematiksel gerçek şu ki:
Bir kurul ve tamamlayıcısı aynı mayın toplam sayısına sahiptir . ( Kanıt )
Diğer bir deyişle, tamamen açıklanmış bir Mayın Tarlası ızgarasına sahipseniz, o ızgaradaki tüm sayıları, yani toplam mayın toplamını , her bir mayının değiştirildiği ızgara olan ızgara tamamlayıcısının toplamına eşit olacaktır. madeni olmayan ve madeni olmayan her madenin yerine.
Örneğin, Mayın Tarlası ızgarası için
**1..
34321
*2**1
maden toplamı 1 + 3 + 4 + 3 + 2 + 1 + 2 + 1 = 17'dir.
Izgara'nın tamamlayıcısı
24***
*****
3*44*
ki yine toplam 2 + 4 + 3 + 4 + 4 = 17'dir.
Metin halinde isteğe bağlı bir tarlası ızgarada alan bir program bilgileri *
bir maden temsil eder ve 1
içinden 8
olmayan bir maden hücresine bitişik mayın sayısını temsil eder. Sen kullanabilirsiniz .
ya 0
ya
(boşluk) hiçbir maden komşuları, seçtiğiniz hücreleri temsil etmek. Giriş ızgarasının doğru bir şekilde işaretlendiğini, yani her bir mayın olmayan hücrenin, ortogonal veya çapraz olarak hemen bitişiğindeki toplam mayın sayısını doğru olarak göstereceğini varsayabilirsiniz.
Programınız aynı formatta ızgaranın tamamlayıcı yazdırmak gerekiyor (aynı kullanılarak .
, 0
ya
girmek beklendiği gibi).
Bayt cinsinden en kısa kod kazanır.
- Bir program yerine, giriş ızgarasını bir dizge olarak alan ve tamamlayıcı ızgarayı basan ya da döndüren bir işlev yazabilirsiniz.
- Girdi veya çıktıdaki izleyen yeni satır iyi, ancak ızgarayı oluşturanlar dışında başka karakter olmamalıdır.
- 1 × 1 ızgarasının en küçük giriş olacağını düşünebilirsiniz.
Test Kılıfları
Tüm girdi ve çıktılar, tamamlayıcının tamamlayıcısı orijinal ızgara olduğu için değiştirilebilir. Izgaralar, diğer test durumları için de döndürülebilir.
Giriş:
111
1*1
111
Çıktı:
***
*8*
***
Giriş:
.
Çıktı:
*
Giriş:
*11*1.1**1...1***1.....1*****1..........
Çıktı:
1**2***11*****1.1*******1...1***********
Giriş: ( Düğüm Kes örneğini )
**212*32
333*33**
1*22*333
222222*1
*33*2232
2**22*2*
Çıktı:
24***4**
***7**64
*8**7***
******8*
4**7****
*33**5*3
?
Kurulun son satırından sonraki satırda bir uç sınırlayıcı (örneğin ) kullanmak kabul edilebilir mi yoksa giriş satırı sayısını komut satırından alabilir miyim?