অনুপ্রাণিত দ্বারা আমরা মিনার প্লব না এবং এর সাথে সম্পর্কিত 2D কিংকত্র্তব্যবিমূঢ় বিয়োগ 1D
ভূমিকা
আপনার কাজটি নির্দিষ্ট বিধি অনুসরণ করে একটি অ্যারে ধাঁধা থেকে বেরিয়ে আসার জন্য সবচেয়ে সংক্ষিপ্ত পথটি সন্ধান করা।
চ্যালেঞ্জ
একজন 1D অ্যারে একটি সঙ্গে এন উপাদানের গঠিত একটি ধাঁধা হিসেবে গণ্য করা যেতে পারে এন পয়েন্ট, যেখানে সূচকের সাথে বিন্দু ট সঙ্গে পয়েন্ট সাথে সংযুক্ত করা হয় ট + + একটি [ ট ] এবং ট - একটি [ ট একটি একমুখী পদ্ধতিতে]। অন্য কথায়, আপনি এগিয়ে অথবা পিছিয়ে ঠিক তিড়িং লাফ পারেন একটি [ ট সূচকের সাথে বিন্দু থেকে] টি পদক্ষেপ ট । অ্যারের সীমানার বাইরে সূচকযুক্ত পয়েন্টগুলি গোলকধাঁধির বাইরে বিবেচনা করা হয়।
এটি চিত্রিত করার জন্য, নিম্নলিখিত অ্যারেটি বিবেচনা করুন,
[0,8,5,9,4,1,1,1,2,1,2]
যদি আমরা এখনই 5 ম উপাদানটিতে আছি, যেহেতু উপাদানটি 4, আমরা 9 ম উপাদানটির 4 ধাপ এগিয়ে বা 1 ম উপাদানটির পিছনে 4 ধাপ এগিয়ে যেতে পারি। যদি আমরা পরবর্তীটি করি, আমরা 0 এলিমেন্টটি দিয়ে শেষ করি যা নির্দেশ করে যে আর কোনও চলন সম্ভব নয়। যদি আমরা প্রাক্তনটি করি, যেহেতু নবম এলিমেন্টটি 2, আমরা 11 তম উপাদানটির প্রত্যাশা বেছে নিতে পারি, যা আবার একটি 2, এবং তারপরে আমরা "13 তম উপাদান" এর কাছে আবারও আশা করতে পারি, যা সীমার বাইরে নয় is অ্যারে এবং ধাঁধা থেকে বেরিয়ে আসা বিবেচনা করে।
সুতরাং আমরা যদি উপাদানটি মাঝখানে থেকে শুরু করি, তবে ধাঁধা থেকে বেরিয়ে আসার এক উপায়টি হ'ল 1 ধাপ পিছনে, 4 ধাপ এগিয়ে, 2 ধাপ এগিয়ে এবং 2 ধাপ এগিয়ে, যা অ্যারে হিসাবে প্রকাশ করা যেতে পারে [-1,4,2,2]
। বিকল্পভাবে আপনি অ্যারে দিয়ে প্রকাশ করতে পারেন [4,8,10,12]
যা সমস্ত মধ্যবর্তী এবং চূড়ান্ত পয়েন্টগুলির শূন্য-ভিত্তিক সূচকটি রেকর্ড করে (1-ভিত্তিক সূচকটিও সূক্ষ্ম), বা কেবল লক্ষণগুলি [-1,1,1,1]
,।
নিম্ন-সূচকের শেষ থেকে ধাঁধাটি ত্যাগ করাও ঠিক।
প্রথম স্বরলিপিটি ব্যবহার করা এবং একই উপাদান থেকে শুরু [1,1,1,2,2]
করাও এটি একটি সমাধান তবে 4 এর পরিবর্তে 5 টি পদক্ষেপ রয়েছে বলে এটি অনুকূল নয়।
কাজটি হল অ্যারে ধাঁধা থেকে বেরিয়ে আসার জন্য সবচেয়ে সংক্ষিপ্ত পথটি খুঁজে বের করা এবং পাথটি আউটপুট। যদি একাধিক অনুকূল পাথ থাকে তবে আপনি যে কোনও বা সমস্তগুলি আউটপুট করতে পারেন। যদি কোনও সমাধান না হয়, আপনার নিজের দ্বারা নির্বাচিত একটি মিথ্যা মানটি আউটপুট করা উচিত যা বৈধ পথ থেকে বিবেচনাযোগ্য (কোনও আউটপুট উত্পাদন করাও ঠিক নয়)।
সরলতার জন্য অ্যারের উপাদানগুলির সংখ্যা সর্বদা একটি বিজোড় সংখ্যা এবং আমরা মাঝেমধ্যে উপাদান থেকে শুরু করি।
পরীক্ষার মামলা
পরীক্ষার কেসগুলি আউটপুট বিভিন্ন ধরণের চিত্রিত করে, তবে আপনি এগুলিতে সীমাবদ্ধ নন।
Input
Output
[0,8,5,9,4,1,1,1,2,1,2]
[-1,4,2,2]
[2,3,7,1,2,0,2,8,9]
[2,9] (or [2,-5] or [[2,9],[2,-5]])
[0,1,2,2,3,4,4,4,3,2,2,3,0]
[1,-1,1,1]
[0,1,2,2,4,4,6,6,6,6,6,4,2,1,2,2,0]
[]
চশমা
আপনি কোনও ফাংশন বা একটি সম্পূর্ণ প্রোগ্রাম লিখতে পারেন।
অ্যারেতে কেবল নন-নেগেটিভ পূর্ণসংখ্যা থাকে।
আপনি যে কোনও স্ট্যান্ডার্ড ফর্মের মাধ্যমে ইনপুট এবং আউটপুট নিতে পারেন , তবে দয়া করে আপনার উত্তরটি নির্দিষ্ট করুন যে আপনি কোন ফর্মটি ব্যবহার করছেন।
এটি কোড-গল্ফ , সর্বনিম্ন সংখ্যা বাইট জিতেছে।
যথারীতি এখানে ডিফল্ট লুফোলগুলি প্রয়োগ হয়।
[1,1,1,-1]
বদলে [-1,1,1,1]
?
[0,8,5,9,4,1,1,1,2,1,2]
, আউটপুটউটিং[[-1,4,2,2]]
)