Memasukkan
Input Anda adalah string tunggal, dipisahkan oleh baris baru menjadi 2n+1
garis panjang 2n+1
, untuk beberapa bilangan bulat n ≥ 0
. Bilangan bulat n
bukan bagian dari input; Anda harus menghitungnya dari string. Garis-garis terdiri dari "karakter arah" >^<v
. Jika baris baru menimbulkan masalah, Anda dapat menggantinya dengan pipa vertikal |
.
Input membentuk ukuran kotak persegi (2n+1)x(2n+1)
, dan setiap sel dari grid ditafsirkan sebagai router rotor , yang menunjuk pada salah satu dari empat arah mata angin. Kami melanjutkan untuk menjatuhkan token pada router di pusat grid, dan kemudian router akan memindahkannya dengan cara berikut. Saat token mendarat di router, router memutar 90 derajat ke arah berlawanan arah jarum jam, dan memindahkan token satu langkah ke arah baru yang ditunjuknya. Jika mendarat di router lain, proses ini diulangi, tetapi akhirnya, token akan jatuh dari grid.
Keluaran
Output Anda adalah konfigurasi final dari router, dalam format yang sama dengan input.
Contoh
Sebagai contoh input, perhatikan 3x3
kisi
<^<
^><
>^v
di mana router pusat telah disorot untuk menunjukkan token (agak sulit untuk dilihat). Router pusat berputar untuk menghadap ke utara, dan memindahkan token ke sel pusat dari baris atas:
<^<
^^<
>^v
Router ini berputar untuk menghadap ke barat, dan mengirimkan token ke sudut kiri atas:
<<<
^^<
>^v
Perute di sudut mengirimkan token selatan, jadi sekarang di sel paling kiri dari baris tengah:
v<<
^^<
>^v
Router itu berputar untuk menghadap ke barat dan mengirimkan token dari grid.
v<<
<^<
>^v
Ini adalah konfigurasi kisi terakhir, jadi program Anda harus menampilkannya. Perhatikan bahwa dalam contoh yang lebih kompleks, token dapat melewati router yang sama beberapa kali sebelum jatuh dari grid.
Aturan
Anda dapat menulis fungsi atau program lengkap. Ini adalah kode-golf, sehingga jumlah byte terendah menang. Celah standar tidak diijinkan. Anda dapat memutuskan apakah ada baris tambahan di input dan / atau output.
Uji Kasus
Input:
v
Output:
>
Input:
<^<
^><
>^v
Output:
v<<
<^<
>^v
Input:
>>^>>
v<vv<
>^>^<
^<>>^
vvv>>
Output:
>>^>>
>v>>v
^>>vv
^^>>>
v^<<^
Input:
<^^^^^^^^
<<^^^^^^>
<<<^^^^>>
<<<<^^>>>
<<<<^>>>>
<<<vv>>>>
<<vvvv>>>
<vvvvvv>>
vvvvvvvv>
Output:
>>>>>>>>v
^>>>>>>vv
^^>>>>vvv
^^^>>vvvv
<<<<<vvvv
^^^^<<vvv
^^^<<<<vv
^^<<<<<<v
^<<<<<<<<