> <> (একটি গৌরোগ্য প্রোগ্রামিং ভাষা) কোডের মাধ্যমে সাঁতার কাটানো প্রিয় মাছটিকে তার প্রাকৃতিক পরিবেশের বাইরে নিয়ে যাওয়া হয়েছে। এই পরিবর্তনটি এটিকে যেভাবে ব্যবহার করা হয়েছিল সেভাবে ঘুরতে অক্ষম করেছে: টরয়েডাল আন্দোলন যা ব্যবহৃত হত তা কেবল বাম থেকে ডান চলাচলে সীমাবদ্ধ রয়েছে। তবে> << প্রোগ্রামগুলি এখনও লেখা আছে যেন মাছগুলি তাদের মধ্য দিয়ে চলতে সক্ষম হয়েছিল। একটি> <> প্রোগ্রামকে লিনিয়ারাইজ করার জন্য একটি প্রোগ্রাম লিখতে প্রিয় প্রোগ্রামার, আপনার কাজ। এবং এটি যতটা সম্ভব বাইটে করুন; মাছের খুব বেশি স্মৃতি থাকে না।
> <> এ আন্দোলন
ইন> <> এ, চলন টরওয়েডাল এবং এক সময় একটি চরিত্র। এর অর্থ হ'ল মাছটি (পয়েন্টারটি) একটি লাইনের শেষে থেকে শুরু পর্যন্ত ফিরে "মোড়ানো" করতে পারে। ইন> <> এ, বেশিরভাগ পয়েন্টার যেভাবে সরানো হয় তার বিপরীতে মাছটি উপরে থেকে নীচে, নীচে থেকে উপরে এবং ডান থেকে বাম দিকে চলতে সক্ষম। সুতরাং এই আন্দোলনের ধরণটি বৈধ হবে:
>>>^ >>>v
>>>^ v
এবং এটি একটি অসীম লুপে শেষ হয়ে যাবে (একবারের নীচে অসীমভাবে পার হয়ে গেলে শীর্ষ লাইনে ফিরে ফিরে আসে)।
মাছ সর্বোচ্চ (সারির দৈর্ঘ্য) এবং সারি সংখ্যার সমান দৈর্ঘ্যের গ্রিডে সরানো হয়।
মাছটি কোন পথে চলেছে তা আপনি কীভাবে আবিষ্কার করবেন? এই কমান্ডগুলি গতিপথের দিকনির্দেশক ভেক্টরকে পরিবর্তন করে (উদাহরণস্বরূপ (-1,0)
ডান থেকে বামে):
Command | Direction Change
---------------------------
> | (1,0) (default)
< | (-1,0)
^ | (0,1)
v | (0,-1)
/ | (x,y) -> (y,x)
\ | (x,y) -> (-y,-x)
| | (x,y) -> (-x,y)
_ | (x,y) -> (x,-y)
# | (x,y) -> (-x,-y)
; | (0,0)
হিসাবে সুপরিচিত, মাছ শুরু স্থানান্তরণ বাম-থেকে-ডান সঙ্গে দিক ভেক্টর, অর্থাত্ (1,0)
। মাছটি প্রথম কমান্ডটি দেখে এবং কমান্ডটি পূর্বনির্ধারিত দিক পরিবর্তনকারীগুলির মধ্যে একটির সাথে মেলে যদি তার দিক পরিবর্তন করে তবে কমান্ডগুলি বিশ্লেষণ শুরু করে।
;
প্রোগ্রামটি দেখে এবং প্রোগ্রামটি শেষ হয়ে গেলে মাছগুলি চলাচল বন্ধ করে দেয়।
ইনপুট
ইনপুটটি এসটিডিআইএন এর মাধ্যমে প্রদত্ত একটি বৈধ (উদাহরণস্বরূপ অসীম লুপিং নয়) প্রোগ্রাম হবে। আপনি ইচ্ছা করলে একটি ফাইলও পড়তে পারেন। প্রতিটি প্রোগ্রামের লাইনগুলি একই দৈর্ঘ্যের হবে না ।
ইনপুটটি স্ট্রিং হিসাবে দেওয়া হয়, নতুন লাইনের সাথে প্রোগ্রামের প্রতিটি লাইন আলাদা হয়।
প্রোগ্রামগুলি লুপ হবে না, যার অর্থ তারা সর্বদা একটি দিয়ে সমাপ্ত হবে ;
।
আউটপুট
আউটপুট হবে প্রোগ্রাম লিনিয়ারাইজড। এটি হ'ল, আপনার সমস্ত অক্ষর (দিকনির্দেশক পরিবর্তনকারীদের) ফিরিয়ে দেওয়া উচিত যা মাছটি দেখতে পারে যে এটি "স্বাভাবিকভাবে" প্রোগ্রামটি চালাচ্ছে কিনা। এটি এর পথে যাওয়ার সমস্ত চরিত্র ;
।
যদি ইনপুটটিতে অসম দৈর্ঘ্যের লাইন থাকে এবং মাছটি দীর্ঘতম রেখার দৈর্ঘ্যের চেয়ে কম লাইন ধরে এগিয়ে যায় তবে আপনার আচরণ করা উচিত যেন মাছটি কোনও স্থানের উপর দিয়ে চলেছে (পরীক্ষার কেস দেখুন)।
> <> এর সাথে পরিচিত তারা জানতে পারবেন যে দিক পরিবর্তনকারীরা কেবল এতে চলাচল করার একমাত্র উপায় নয়, তবে সরলতার জন্য ইনপুটটিকে এমন আচরণ করুন যেন তারা আন্দোলনকে প্রভাবিত করার একমাত্র উপায়।
বিধি
- স্ট্যান্ডার্ড লুফোলস প্রযোজ্য
- আপনি একটি সম্পূর্ণ প্রোগ্রাম বা ফাংশন লিখতে পারেন
- এসটিডিআইএন বা একটি ফাইলের মাধ্যমে ইনপুট সরবরাহ করা হয় স্ট্রিং হিসাবে প্রোগ্রামলাইনগুলিকে নিউলাইন দ্বারা পৃথক করা (
\n
))- আপনি ইনপুটটি ভিন্নভাবে নিতে পারেন, কারণের মধ্যে (আপনার যদি মনে হয় কোনও নির্দিষ্ট ধরণের ইনপুট মনে আছে তবে আমাকে নির্দ্বিধায় জিজ্ঞাসা করুন)। আপনি ফাঁকা জায়গায় ইনপুট প্যাড করতে পারবেন না তাই লাইন দৈর্ঘ্য মেলে।
- পড়ুন এই নমনীয় ইনপুট সংক্রান্ত মেটা পোস্ট। এটি পোস্টিংয়ের মতো, সাধারণ sensক্যমত কারণের মধ্যে যথাসম্ভব নমনীয় হতে হবে।
- আউটপুট হল STDOUT এর মাধ্যমে একক স্ট্রিং বা ফাংশন দ্বারা ফিরে (আপনি যা করতে চান তার উপর নির্ভর করে বিধি 2 দেখুন)
পরীক্ষার মামলা
v >v
>abcv//;
gfed<^ih
v>abcv<defghi^//>v;
v >v
>abcv//;
gfed<^
v>abcv<defg ^//>v;
abcdef;
abcdef;
abcd|;
abcd|dcba;
abcd#;
abcd#dcba;
abcd\;
_
abcd\_\dcba;
^;
>abcde/
^jihg<
^ >abcde/ <ghij^a;
;
;