Şifreli bir bulmaca bağımlısı olan Chris, bunları çözme sırası için belirlenmiş bir algoritmaya sahiptir.
Yukarıdaki resmi bir rehber olarak kullanacağız.
- Chris her zaman ilk ipucu ile başlar, bu durumda 1 Across. Chris yetenekli bir bulmaca tutkunu, bu yüzden üzerinde çalıştığı ipucunun cevabını her zaman bileceği varsayılıyor.
- Chris bir ipucunu tamamladığında, tamamladığı ipuçlarına (ilk durumda, 1 Aşağı, 2 Aşağı ve 3 Aşağı) bitişik tüm ipuçlarını kontrol eder ve ardından ipucunu en düşük numarayla tamamlar. Bitişik bir ipucu yoksa, 3. adıma gider.
- İpucu, bir sonraki sayının (Adım 3'te açıklandığı gibi) hem bir hem de bir aşağı ipucuna sahip olacağı şekilde ise, ilk önce ipucunu tamamlayacaktır (% 100 kesinlik, OKB'de bu sınırlar!)
- Bitişik bir ipucu yoksa, bir sonraki mevcut ipucuna (karşısına veya aşağıya) gidecektir.
- Tüm ipuçları tamamlanana kadar Adım 2'den itibaren tekrarlayın.
Ve burası size geliyor, sevgili kodlayıcılar. Bir bulmaca şablonu sağlandığında, Chris'in çözümü için algoritmaya dayalı ipuçlarının sırasını açıklayan çıktı sağlayabilecek bir kod oluşturmakla görevlendirildiniz.
Kod, .
beyaz bir kareyi #
temsil eden ve siyah bir kareyi temsil eden bir bulmaca şablonunun girişini kabul edecektir .
Örnek :
.....#.........
.#.#.#.#.#.#.#.
...#...#.......
.#.#.#.#.#.#.#.
....#..........
##.#.#.#.#.#.#.
......#........
.###.#####.###.
........#......
.#.#.#.#.#.#.##
..........#....
.#.#.#.#.#.#.#.
.......#...#...
.#.#.#.#.#.#.#.
.........#.....
Girdi şu şekillerde olabilir: a) bulmacanın temsilini okuyan bir dosya veya b) bulmacanın her satırının satır girişi ve ardından \n
ikinci bir \n
EOF göstermesi ile.
Ve sonra Chris'in tanımladığı yukarıdaki algoritmaya göre bunu çözeceği yöntemi belirleyecek.
Çıkış şeklinde talimatları virgülle ayrılmış bir dizi biçimde olmalıdır n(A|D)
, n
ardından ipucu sayıdır A
üzerinden veya için D
aşağı için.
Dolayısıyla yukarıdaki örnekte (hem görüntüden hem de bir ve aynı olan örnek şablondan) çıktı:
1A,1D,2D,3D,9A,10A,4D,5D,6D,7D,8D,11A,12A,13A,15A,14D,15D,16A,17A,18D,19D,20A,21D,23A,22D,24A,25D,27A,28A,26D,29A,30A,31A
En kısa kod kazanır ...
Test yapmak
Gönderinizde kodu, bir bayt sayısını ve .
ve #
biçiminde temsil edilen dört test durumundan birini ve bu girişten üretilen çıktıyı sağlamalısınız . Dört test durumu vardır, aşağıdaki üç örnek ve yukarıdaki örnek şablon.
Örnek test örnekleri:
Test Durumu 1
.....#
.#.#.#
...#..
.#.#.#
.....#
##.#..
Çıktı: 1A,1D,2D,3D,4A,5A,6A,7A
Test Durumu 2
.....#..
.#.##..#
.#....#.
...##.#.
.####...
......##
Çıktı: 1A,1D,2D,5A,4D,4A,3D,3A,7A,8A,6D,9A
Test Durumu 3
.........#
#.#.#.#.#.
....#...#.
#...#.#.#.
..###.#.#.
.#....#...
.#####...#
.....###..
Çıktı: 1A,2D,3D,4D,5D,7A,8A,9A,10A,11A,11D,12A,13A,6D,14D,15A,16A,17A
Test Durumu 4
.....#.........
.#.#.#.#.#.#.#.
...#...#.......
.#.#.#.#.#.#.#.
....#..........
##.#.#.#.#.#.#.
......#........
.###.#####.###.
........#......
.#.#.#.#.#.#.##
..........#....
.#.#.#.#.#.#.#.
.......#...#...
.#.#.#.#.#.#.#.
.........#.....
Çıktı: 1A,1D,2D,3D,9A,10A,4D,4A,5D,6D,7D,8D,11A,12A,13A,15A,14D,15D,16A,17A,18D,19D,20A,21D,23A,22D,24A,25D,27A,28A,26D,29A,30A,31A
İyi şanslar!
17A
sonunda bir atlamak olduğunu düşünüyorum . Ayrıca dördüncü 4A
sağdan sonra 4D
.