Tantangan
Buat fungsi yang, ketika diberi input seni ASCII (mengarahkan jalur yang pada akhirnya mungkin loop), output panjang loop (jika ada satu) dan panjang "ekor" yang mengarah ke loop di salah satu formulir di bawah ini.
Memasukkan
Masukan Anda harus diteruskan ke suatu fungsi. Di bawah ini adalah contoh input sederhana.
# --> # --> #
^ |
| |
| v
# <-- #
Anda dapat memvisualisasikan blok di atas seperti ini
"Ekor" adalah satu item, sedangkan loop empat panjang.
Yang lebih sulit:
# --> # --> #
^ |
| |
| v
# --> # <-- # # --> #
^ ^ |
| | |
| | v
# --> # # <-- # <-- #
Keluaran
Anda harus mengeluarkan melalui STDOUT atau alternatif terdekat bahasa Anda.
Dua bilangan bulat keluaran Anda harus panjang dari ekor dan panjang dari loop. Output ini bisa dalam dua bentuk.
- string yang dibatasi ruang:
"2 10"
- array bilangan bulat:
[2, 10]
Aturan
Setiap blok, atau
#
, hanya akan memiliki satu jalur dari dirinya sendiri.Setiap panah adalah dua segmen garis dan satu kepala.
Blok awal akan selalu berada di kolom paling kiri.
Input tidak akan pernah menjadi hanya satu lingkaran.
Contoh
# --> # --> # --> #
^ ^ |
| | |
| | v
# # <-- # <-- #
Yang ini memiliki panjang ekor 2 dan panjang lingkaran 6. Di bawah, ekor dan lingkaran dipisahkan.
Ekor
# -->
^
|
|
#
Loop
# --> # --> #
^ |
| |
| v
# <-- # <-- #
Output yang benar adalah [2, 6]
dan"2 6"
.
Jika input hanya berupa ekor , panjang loop adalah nol.
# --> # --> # --> #
|
|
v
<-- # <-- #
Output yang benar untuk input di atas adalah [6, 0]
dan"6 0"