इनपुट
आपका इनपुट एक एकल स्ट्रिंग है , जो कुछ पूर्णांक के लिए 2n+1लंबाई की रेखाओं में अलग-अलग होती है । पूर्णांक इनपुट का हिस्सा नहीं है; आपको इसे स्ट्रिंग से गणना करना होगा। रेखाएं "दिशा वर्ण" से बनी होती हैं । यदि newlines कोई समस्या उत्पन्न करते हैं, तो आप उन्हें ऊर्ध्वाधर पाइपों द्वारा बदल सकते हैं ।2n+1n ≥ 0n>^<v|
इनपुट आकार का एक वर्ग ग्रिड बनाता है (2n+1)x(2n+1), और ग्रिड के प्रत्येक सेल को रोटर राउटर के रूप में व्याख्या की जाती है , जो चार कार्डिनल दिशाओं में से एक में इंगित करता है। हम ग्रिड के केंद्र में राउटर पर एक टोकन छोड़ने के लिए आगे बढ़ते हैं , और फिर राउटर इसे निम्नलिखित तरीके से चारों ओर ले जाएंगे। जब एक राउटर पर टोकन भूमि होती है, तो राउटर काउंटर-क्लॉकवाइज दिशा में 90 डिग्री पर मुड़ता है, और टोकन को नई दिशा में एक कदम आगे बढ़ाता है। यदि यह दूसरे राउटर पर उतरता है, तो प्रक्रिया को दोहराया जाता है, लेकिन अंततः, टोकन ग्रिड से गिर जाएगा।
उत्पादन
आपका आउटपुट राउटर का अंतिम कॉन्फ़िगरेशन है, इनपुट के समान प्रारूप में।
उदाहरण
एक उदाहरण इनपुट के रूप में, 3x3ग्रिड पर विचार करें
<^<
^><
>^v
जहां केंद्रीय राउटर को टोकन को इंगित करने के लिए हाइलाइट किया गया है (यह देखने में थोड़ा कठिन है)। केंद्रीय राउटर उत्तर का सामना करने के लिए घूमता है, और टोकन को शीर्ष पंक्ति के केंद्रीय सेल में ले जाता है:
<^<
^^<
>^v
यह राउटर पश्चिम का सामना करने के लिए घूमता है, और शीर्ष बाएं कोने में टोकन भेजता है:
<<<
^^<
>^v
कोने में राउटर टोकन दक्षिण भेजता है, इसलिए यह अब मध्य पंक्ति के बाईं ओर स्थित है:
v<<
^^<
>^v
वह राउटर पश्चिम की ओर घूमता है और ग्रिड से टोकन भेजता है।
v<<
<^<
>^v
यह अंतिम ग्रिड कॉन्फ़िगरेशन है, इसलिए आपके प्रोग्राम को इसका उत्पादन करना चाहिए। ध्यान दें कि अधिक जटिल उदाहरणों में, टोकन ग्रिड से गिरने से पहले टोकन एक ही राउटर को कई बार पास कर सकता है।
नियम
आप एक फ़ंक्शन या पूर्ण प्रोग्राम लिख सकते हैं। यह कोड-गोल्फ है, इसलिए सबसे कम बाइट गिनती जीतती है। मानक खामियों को अस्वीकार कर दिया जाता है। आप तय कर सकते हैं कि इनपुट और / या आउटपुट में एक अनुगामी न्यूलाइन है या नहीं।
परीक्षण के मामलों
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
^<<<<<<<<