Kendimi biraz turşu haline getirmiş gibiyim. Kelimenin tam anlamıyla. Zemine bir avuç turşu düşürdüm ve şimdi hepsi dağılmış durumda! Hepsini toplamama yardım etmene ihtiyacım var. Ah, emrimde bir sürü robotum olduğunu söylemiş miydim? (Hepsi de her yere dağılmışlar; Bir şeyleri organize etmede gerçekten kötüyüm.)
Girdiyi şu şekilde almalısınız:
P.......
..1..2..
.......P
........
P3PP...4
.......P
yani, ya birden fazla satır .
, P
(turşu) veya bir rakam (robotun İD). (Her satırın eşit uzunlukta olduğunu, dolgulu olduğunu varsayabilirsiniz .
.) Bu satırları bir dizi olarak girebilir veya STDIN'den ayrılabilir veya virgülle ayrılmış tek bir satırda okuyabilir veya bir dosyayı okuyabilir veya ne istersen yapabilirsiniz girişi almak istiyorum.
Çıktınız , en yüksek robot kimliğinin n
bulunduğu satırlar şeklinde olmalıdır n
. (Robot kimlikleri her zaman 1'den başlayarak sıralı olacaktır.) Her satır robotun L
(sol), R
(sağ), U
(yukarı) ve D
(aşağı) harflerinden oluşan yolunu içerecektir . Örneğin, bu bulmacanın örnek çıktısı:
LLU
RDR
LRRR
D
Ayrıca olabilir
LLU RDR LRRR D
Veya
["LLU","RDR","LRRR","D"]
Ya da çözümün ne olması gerektiğini söyleyebildiğiniz sürece istediğiniz herhangi bir format.
Amacınız, en az adıma sahip olan optimum çıktıyı bulmaktır. Adım sayısı, tüm robotların en büyük adım sayısı olarak sayılır. Örneğin, yukarıdaki örnekte 4 adım vardı. Birden fazla çözüm olabileceğini unutmayın, ancak yalnızca bir çözüm üretmeniz gerekir.
puanlama:
- Programınız 5 (rastgele oluşturulmuş) test vakasının her biri ile çalıştırılacaktır.
- Her koşudan adımları eklemelisiniz ve bu sizin puanınız olacaktır.
- En düşük toplam, kümülatif puan kazanacaktır.
- Bu belirli girişler için sabit kodlama yapamayabilirsiniz. Kodunuz diğer girdiler için de çalışmalıdır.
- Robotlar birbirinden geçebilir.
- Programınız deterministik olmalıdır, yani her çalışma için aynı çıktı. Tohumlanmış ve sürekli olarak aynı sayıları çapraz platform ürettiği sürece rastgele bir sayı üreteci kullanabilirsiniz.
- Her giriş için kodunuzun 3 dakika içinde çalışması gerekir. (Tercihen çok daha az.)
- Beraberlik durumunda, çoğu oylar kazanır.
İşte test senaryoları. Yazdığım küçük bir Ruby senaryosuyla rastgele oluşturuldular.
P.......1.
..........
P.....P...
..P.......
....P2....
...P.P....
.PP..P....
....P....P
PPPP....3.
.P..P.P..P
....P.....
P....1....
.P.....PP.
.PP....PP.
.2.P.P....
..P....P..
.P........
.....P.P..
P.....P...
.3.P.P....
..P..P..P.
..1....P.P
..........
.......2P.
...P....P3
.P...PP..P
.......P.P
..P..P..PP
..P.4P..P.
.......P..
..P...P...
.....P....
PPPP...P..
..P.......
...P......
.......P.1
.P..P....P
P2PP......
.P..P.....
..........
......PP.P
.P1..P.P..
......PP..
P..P....2.
.P.P3.....
....4..P..
.......PP.
..P5......
P.....P...
....PPP..P
İyi şanslar ve turşuların orada çok uzun süre oturmasına izin vermeyin, yoksa bozulurlar!
Oh, neden turşu istiyorsun?
Neden olmasın?