Diberikan satu set kontur 2d tertutup yang tidak tumpang tindih (dipisahkan oleh setidaknya satu ruang bahkan pada diagonal) dengan panah yang berorientasi secara konsisten dalam arah searah jarum jam atau berlawanan arah jarum jam (masing-masing kontur memiliki arahnya sendiri) dan angka positif n
, pindahkan panah n
langkah-langkah di sepanjang kontur dalam arah masing-masing. Panah diwakili oleh > v < ^
masing-masing untuk arah kanan, bawah, kiri dan atas. Di sana karakter lainnya adalah -
(horizontal), |
(vertikal) dan +
(sudut). Saat panah berada di sudut, ia tetap mengikuti arahnya saat ini dan mengubahnya hanya setelah belokan diambil.
Akan selalu ada segmen lurus (atau spasi) antara dua sudut (seperti +-+
untuk horizontal dan serupa untuk vertikal) - dengan kata lain U
belokan tajam dilarang. Segmen antara sudut vertikal atau horizontal dan tikungan di sudut selalu 90 derajat.
Memasukkan:
- bilangan bulat positif -
n
- jumlah langkah - representasi ASCII dari kontur - dapat berupa string multiline, daftar string, daftar karakter, dan sebagainya.
Keluaran:
Kontur yang sama dengan semua panah menggeser n
langkah dalam arah keseluruhan setiap kontur.
Kasus uji:
1.
Memasukkan:
n
= 1
+----->->
| |
| v---+
| |
+---<-------+
Keluaran:
+------>+
| v
| +>--+
| |
+--<--------+
2.
Memasukkan:
n
= 2
+-----+ +---+
| | | |
+-->--+ | v
| |
+--->---+ |
| |
+------<<---+
Keluaran:
+-----+ +---+
| | | |
+---->+ | |
| |
+----->-+ v
| |
+----<<-----+
3.
Memasukkan:
n
= 3
+---+ +---+ +-------+
| | | v | |
^ | | | +-<-+ |
| | ^ | | v
| +---+ +-->----+ |
| |
| +-------+ +---+ |
| | | v | |
+---+ +---+ +---+
Keluaran:
+>--+ ^---+ +-------+
| | | | ^ |
| | | | +---+ |
| | | | | |
| +---+ v----->-+ |
| |
| +-------+ +---+ v
| | | | | |
+---+ +-<-+ +---+
4.
Memasukkan:
n
= 1
+--+
| |
| +---+
| |
+----+ |
| |
+-+
Keluaran:
+--+
| |
| +---+
| |
+----+ |
| |
+-+
5.
Memasukkan
n
= 4
^>>>>
^ v
^ v>>>>
^ v
<<<<<<<<v
Keluaran:
^>>>>
^ v
^ v>>>>
^ v
<<<<<<<<v
6.
Memasukkan:
n
= 1
^->
^ v
<<v
Keluaran:
^>+
^ v
<<v
Tulis fungsi atau program yang menyelesaikan tugas di atas. Kode terpendek dalam byte di setiap bahasa menang. Jangan berkecil hati dengan bahasa golf. Penjelasan algoritma dan kode sangat dihargai.
There will always be a straight segment (or a space) between any two corners (like +-+ for the horizontal and similar for the vertical) - in other words the sharp U turns are forbidden.