আমি তোমাকে তৃষ্ণার্ত অবস্থায় মরতে দেখতে চাই


12

আপনি দু'টি শহরের মধ্যে মরুভূমি পেরিয়ে ভ্রমণকারী। আপনি থামাতে না পার হয়ে পর্যাপ্ত জল বহন করতে পারবেন না। এটি একটি ধ্রুপদী ধাঁধা একটি প্রকরণ।

নিয়ম

একটি মরুভূমি দেখতে দেখতে: বেশিরভাগ ফাঁকা জায়গার ডাব্লুএক্সএইচ গ্রিড। চিহ্নিত স্থানটি Sআপনি যেখানে শুরু করেছিলেন, Eসেখানেই আপনি শেষ করতে চান, এবং N নম্বরযুক্ত একটি বর্গক্ষেত্রটি জল ইউনিট ধারণ করে holds স্কয়ার .শূন্য জলের সাথে চিহ্নিত ।

.....................................
........S............................
.....................................
.........7...........................
.....................................
.......................3.............
.....5...............................
................................2....
.....................................
.....................................
.....................................
...............................E.....
.....................................
....................7................
.....................................
.....................................

আপনি এস এ 5 ইউনিট জল দিয়ে শুরু করুন।

আপনি সর্বোচ্চ 5 ইউনিট জল বহন করতে পারেন।

প্রতিটি আপনি পালা

  1. এক বর্গাকার উপরে, নীচে, বাম বা ডানদিকে সরিয়ে নিন
  2. আপনি বহন করছেন যে 1 ইউনিট জল খাওয়া,
  3. কুড়ান বা ড্রপ জল ইউনিট কিছু সংখ্যা।

একটি মোড় এইভাবে notated হয়: (direction)(+|-)(units of water), +ইঙ্গিত আপনি জল গোছগাছ করা হয়, -আপনি এটি ড্রপ করা হয়।

উদাহরণ ঘুরে:

D+0        Move Down
R+0        Move Right
D+2        Move Down, pick up two units of water.
U-1        Move Up, drop one unit of water.

আপনি যদি উপরের উদাহরণে এস থেকে শুরু করে এই পদক্ষেপগুলি সম্পাদন করেন তবে মরুভূমিটি পরে এর মতো দেখায়।

.....................................
........S............................
.........1...........................
.........5...........................
.....................................
.......................3.............
.....5...............................
................................2....
.....................................
.....................................
.....................................
...............................E.....
.....................................
....................7................
.....................................
.....................................

ইতিমধ্যে আপনার স্কোয়ারের চেয়ে বেশি জল তুলতে পারবেন না। আপনি যখন জল তুলবেন, টাইলের গণনা থেকে সেই একক সংখ্যাটি বাদ দিন।

আপনি সর্বাধিক 5 ইউনিট ধরে রাখতে জল তুলতে পারবেন।

কোনও টাইল 9 টির বেশি ইউনিট ধরে রাখতে পারে না, এস ব্যতীত অসীম ইউনিট রাখে।

আপনি বর্তমানে যতটা জল রাখছেন কেবল ততটুকু জল ফেলে দিতে পারেন।

আপনি আবার তা না নেওয়া পর্যন্ত মাটিতে জল অপরিবর্তিত রয়েছে।

আপনি যদি এস এ ফিরে যান তবে আপনি এটিকে হ্রাস না করে কোনও পরিমাণ জল তুলতে পারবেন।

আপনি যদি E এ পৌঁছে যান তবে আপনি জিতবেন । আপনি যদি ইতে আপনার শেষ ইউনিট জল গ্রহণ করেন তবে আপনি জিততে পারেন

যদি, আপনার পালা পরে, আপনার শূন্য জল এবং আপনি ই তে না হন তবে আপনি মারা যান

ইনপুট এবং আউটপুট

আপনার প্রোগ্রামটি STDINউপরের ফর্ম্যাটে এএসসিআইআই আর্ট হিসাবে স্বেচ্ছাসেবীর আকারের একটি শুরুর মানচিত্র পাবেন । আপনি ধরে নিতে পারেন এটি আয়তক্ষেত্রের অর্থাত্ সমস্ত রেখাগুলি একই দৈর্ঘ্য, ঠিক এক Sএবং এক Eবর্গক্ষেত্র রয়েছে, সমস্ত লাইন সমাপ্ত হবে \nএবং পুরো এসটিডিন এই রেজেক্সটির সাথে সামঞ্জস্য করবে:/^[SE1-9\.\n]+$/

আপনার প্রোগ্রামটি নিম্নলিখিত আউটপুটটি STDOUT এ লিখবে:

  1. চাল তালিকা,
  2. মানচিত্রের চূড়ান্ত অবস্থা।

আপনি যে কোনও সুবিধাজনক বিন্যাসে চালগুলির তালিকা আউটপুট করতে পারেন।

মানচিত্রের চূড়ান্ত অবস্থা ইনপুট হিসাবে একই ফর্ম্যাটে মুদ্রিত হবে তা বাদে এটি মরুভূমির মধ্য দিয়ে আপনি যে সমস্ত পথটি দেখেছেন সেগুলি সমস্ত পরিদর্শন করা টাইলগুলি চিহ্নিত করে দেখিয়ে দেবে# , যদি সেই টাইলটিতে কোনও জল থাকে না এবং এস বা ই হয় না (যেমন) এটা .)।

উদাহরণ ইনপুট:

.....S.
.......
.......
E......
....8..

উদাহরণ বিজয়ী আউটপুট:

D+0
D+0
D+0
D+0
L+5
L+0
L+0
L+0
L+0
U+0
.....S.
.....#.
.....#.
E....#.
####3#.

Nontriviality

আপনি যখন আপনার কোড পোস্ট করেন, তখন একটি নমুনা মানচিত্র ইনপুট পোস্ট করুন যা আপনার কোডে এমন কোনও সমাধান খুঁজে পেয়েছে যার জন্য নিম্নলিখিত অ-তুচ্ছতা শর্তাদি পূরণ করে:

  • এস এবং ই কমপক্ষে 10 টি পদক্ষেপ আলাদা।
  • প্রাথমিকভাবে N ইউনিট জল রয়েছে এমন যে কোনও বর্গক্ষেত্রকে অবশ্যই N স্কোরের সীমানা দ্বারা আবদ্ধ করা উচিত যেখানে সমস্ত বর্গক্ষেত্র রয়েছে .(জল নেই, এস বা ই নয়)

EXAMPLE টি

........2.
..........
..........
S.1..2....
..........
..........
........1.
..3.......
.........E

আপনি যদি কোনও টাইলের জলের পরিমাণ বাড়িয়ে দেন তবে উপরেরটি তুচ্ছ হয়ে যায়।

আবশ্যকতা

সম্ভবত আপনার প্রোগ্রামটি এর কোনও সমাধানের সন্ধানের আগে বেশ কয়েকটি ব্যর্থ চেষ্টাগুলির মুখোমুখি হবে।

  1. আপনার প্রোগ্রামটি শেষ পর্যন্ত কোনও দ্রবণযোগ্য ইনপুট সমাধান করতে হবে।
  2. আমি আপনাকে মরতে দেখতে চাই - আপনার প্রোগ্রামটি সমাধান অনুসন্ধানের প্রতিটি ব্যর্থ চেষ্টার জন্য মৃত্যুর পথে চলার চূড়ান্ত মানচিত্রের আউটপুট তৈরি করবে ।
  3. যদি আপনি কোনও বিজয়ী সমাধানের মুখোমুখি হন তবে এর জন্য সম্পূর্ণ আউটপুট মুদ্রণ করুন এবং শেষ করুন।
  4. কোনও সমাধান না পাওয়া পর্যন্ত চালাও, তবে একই সমাধানের জন্য দু'বার চেষ্টা করবেন না - সমস্ত মৃত্যু পৃথক পথে হওয়া উচিত।
  5. এটি একটি পরীক্ষার ইনপুট ব্যবহার করুন:

(কিছু মিডপয়েন্টে জলের ক্যাশে ফেলতে কমপক্ষে একটি পদক্ষেপ নেওয়া দরকার)।

 S........
 .........
 .........
 ........E

সবচেয়ে সংক্ষিপ্ত কোড যা একটি অ-তুচ্ছ পরীক্ষামূলক ইনপুট সহ পোস্ট করা হয় যা এটি জয়ের সমাধান করে


প্রোগ্রামটি কোনও দ্রবণযোগ্য মানচিত্র সমাধান করতে সক্ষম হওয়া প্রয়োজন কিনা, বা এটি কেবল একটি মানচিত্রের জন্য কাজ করতে হবে কিনা তা নির্দিষ্ট করার জন্য এটি পরিষ্কার করা দরকার। আমি অবশ্যই প্রাক্তনকে উত্সাহিত করব; একটি মানচিত্রের ক্ষেত্রে সমাধানটি গণনা করার চেয়ে হার্ডকোড করা আরও সহজ।

স্বচ্ছতার জন্য সম্পাদিত। হ্যাঁ আপনি জিতে থাকেন যদি আপনার শূন্যের চেয়ে বেশি জল থাকে এবং হ্যাঁ আপনার প্রোগ্রামটি অবশ্যই সমস্ত দ্রবণযোগ্য ইনপুট সমাধান করবে।
spraff

আপনি কি * এর মতো অ্যালগরিদম ব্যবহার করতে বাধা দিচ্ছেন এবং প্রতিটি টাইলের 5 টি ইউনিটের একটি পথ ফেলে রেখে আপনি ধারাবাহিকভাবে যান এবং 5 টি জল ছাড়াই টাইলের উপরে পা রাখলে শুরুতে ফিরে যেতে চান?
নীল

কিছুই নেই। এগিয়ে যান.
স্প্রাফ

'এস থেকে সমস্ত জল বহন করুন' কৌশলটি কাজ করা উচিত, যদিও এটি মারাত্মক ক্লান্তিকর হবে। এস।,।,।,।, ই .... বিবেচনা করুন এবং ই কোথায় এবং ই সত্যিই বিন্দু। কমাগুলি যেখানে আপনি নিজের স্ট্যাশগুলি ধরে রাখেন এবং 'ই' সেখানে আপনার ই রান করার জন্য 5 জল থাকা দরকার 1 1 জল প্রথম কমাতে নিয়ে যাওয়ার 4 টি পদক্ষেপ (E + 0 E-1 W + 0 ডাব্লু + 4)। ১ টি পদক্ষেপে ১ টি জল দ্বিতীয় কমাতে নিয়ে যাওয়া। 52 তৃতীয়, 160 থেকে চতুর্থ, 484 এ 1 জল ফেলে ই এবং এস-তে ফিরে আসুন 1926 ধাপে এবং আপনি ই 5 তে জল বহন করছেন, আরও 5 টি ই 1931 পদক্ষেপে চলেছেন। পথের প্রতিটি দুটি ধাপ কার্যকরভাবে আপনার সমাধানের দৈর্ঘ্যকে তিনগুণ করে।
স্পার

উত্তর:


12

পার্ল, 299 + 1 = 300 254 + 1 = 255 বাইট

লোকেরা যখন আমার অ্যালগোরিদম দেখে: এটি প্রায় অবশ্যই গল্ফিং ভাষার একটি দ্বারা প্রহার করা হবে :-)

-n(1 বাইট পেনাল্টি) দিয়ে চালান ।

পূর্ববর্তী সংস্করণটি অনুমানটির সাথে পুরোপুরি মেনে চলেনি কারণ এটি মানচিত্রে অতিরিক্ত জল রেখেছিল এবং মানচিত্রের চূড়ান্ত সংস্করণে এটি প্রদর্শন করে না; সেই পরিস্থিতি মোকাবেলায় অ্যালগরিদম পরিবর্তন করার সময়, আমি এটিকে প্রক্রিয়াটিতে কিছুটা ছোট করেছিলাম।

push@a,[split//];($s,$t)=(length$`,$.)if/S/;($e,$f)=(length$`,$.)if/E/}{$_.=$s<$e?($s++,R):$s>$e?($s--,L):$t<$f?($t++,D):($t--,U);$\=reverse$";$".=y/LRUD/RLDU/r.Y.reverse.($"=~y/Y/X/r);$a[$t-1][$s]=~y/./#/;$\.=$s-$e||$t-$f?redo:$_;print map{join'',@$_}@a

উদাহরণ (স্ক্রোল করার প্রয়োজন এবং কাঠামোটি দেখানোর প্রয়োজন এড়াতে আমি আউটপুটটিতে লাইন-ব্রেকগুলি যুক্ত করেছি):

ই .....
# .....
# .....
# .....
##### এস
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএলএক্সআরআরআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সএলআরডিআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএলএক্সআরআরআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএলএক্সএক্সডিডিআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএলএক্সআরআরআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সএলআরডিআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএলএক্সআরআরআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএলইউইউইডিডিডিআরআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএলএক্সআরআরআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সএলআরডিআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএলএক্সআরআরআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সআরআরআরআর
 LXR LLXRR LXR LLLXRRR LXR LLXRR LXR LLLLLUUDDRRRRR
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএলএক্সআরআরআরআরআরআর
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সআরআরআরআর
 LXR LLXRR LXR LLLXRRR LXR LLXRR LXR LLLLLUYDRRRRR
 এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএক্সআরআরআর এলএক্সআর এলএলএক্সআরআর এলএক্সআর এলএলএলএলএক্সআরআরআরআর
 LXR LLXRR LXR LLLXRRR LXR LLXRR LXR LLLLLYYRRRRR
 LXR LLXRR LXR LLLXRRR LXR LLXRR LXR LLLLYYRRRR
 LXR LLXRR LXR LLLYRRR LXR LLYRR LYR LLLLLUUUU

প্রোগ্রাম দ্বারা ব্যবহৃত স্বরলিপি, আন্দোলন মাধ্যমে প্রতিনিধিত্ব করা হয় L, R, U, এবং Dবাম জন্য, আপ, ঠিক আছে, যথাক্রমে নিচে। ডিফল্টরূপে, আপনি প্রতিটি পদক্ষেপের পরে 1 ইউনিট জল বাছাই করেন তবে একটি অক্ষর যুক্ত করে এটি পরিবর্তন করা যেতে পারে:

  • X: 1 টি বাছাইয়ের পরিবর্তে 2 ইউনিট জল ফেলুন
  • Y: 1 টি বাছাইয়ের পরিবর্তে 1 ইউনিট জল ফেলুন
  • (অর্থাত্ স্পেস): জলের উপর সম্পূর্ণ পুনরায় রিফিল করুন (কেবলমাত্র সরানোর পরে আউটপুট S; প্রোগ্রামটি একটি শীর্ষস্থানীয় স্থানের সাথে আউটপুটও হয়, যা বোঝায় যে আপনি জলের উপর ভরপুর শুরু করেছেন)

আপনি দেখতে পাচ্ছেন, অতিরিক্ত কোনও পুল ব্যবহার না করে এই (বরং বন্ধ্যা) মানচিত্রটি অতিক্রম করা সম্ভব। আসলে, কোনও প্রস্তুতিযুক্ত জলের সাহায্য ছাড়াই কোনও মানচিত্রে এই নিয়মের অধীনে কোনও দূরত্ব পাওয়া সম্ভব । এই হিসাবে, এই অ্যালগরিদমটি কেবল কোনও প্রস্তত জলের উপেক্ষা করে, যার অর্থ এটি হ্যান্ডেল করার চেষ্টা করে আমাকে বাইটগুলি নষ্ট করতে হবে না। এর অর্থ হ'ল আপনি বটকে মরতে দেখছেন না, দুঃখিত। এটি কখনই তার পরিসীমা ছাড়িয়ে যায় না যেখানে এটি জানে যে এর বেঁচে থাকার নিশ্চয়তা রয়েছে।

আমাদের উভয়ের Xএবং Y(এবং Xবেশিরভাগ অতিরিক্ত কোডটি আমাদের বেশিরভাগ কৌশল জুড়ে Yরয়েছে তবে শেষ পর্যন্ত মাঝে মধ্যে) তা নিশ্চিত হওয়ার কারণটি হ'ল এই বৈশিষ্টটির জন্য মানচিত্রের চূড়ান্ত সংস্করণ আউটপুট হতে হবে। এটি বাস্তবায়নের সহজতম উপায় হ'ল মানচিত্রটিকে পুরোপুরি অচল করে রাখা (প্রাথমিকভাবে খালি স্কোয়ারগুলির মধ্য দিয়ে আমাদের পথ বাদে), বিশেষত যে বর্গাকারটি 9জল দিয়ে শুরু হয়েছিল 10(এসএসআইআই শিল্পকে ভঙ্গ করে) যদি পথে চলতে থাকে তবে শেষ হবে would এবং আমরা শুধুমাত্র ব্যবহৃতX, এবং এইভাবে আমাদের এমন কোনও সমাধান খুঁজে বের করতে হবে যা মানচিত্রে অতিরিক্ত জল ফেলে দেওয়া এড়িয়ে চলে। এখানের অ্যালগরিদম "স্বাভাবিকভাবে" রুটের প্রতিটি স্কোয়ারে 1 টি অতিরিক্ত ইউনিট জল ফেলেছিল; এই হিসাবে, আমরা প্রতিটি বর্গক্ষেত্রের পেনাল্টিমেট সময়টি এক্স এর পরিবর্তে ওয়াই ব্যবহারের মাধ্যমে 1 টি ফেলে দেওয়া পানির পরিমাণ হ্রাস করি, যাতে আমাদের চূড়ান্ত পরিদর্শনকালে, আমরা বর্গক্ষেত্রটিকে তার মূল পরিমাণে ফিরিয়ে নাও আমরা শুরু করার চেয়ে কিছুটা ভেজা রেখে দিচ্ছি।

আমি এটি একটি বৃহত মানচিত্রে চালানোর বিরুদ্ধে সুপারিশ করব, কারণ এটির (2 ^ n) পারফরম্যান্স রয়েছে (যদিও বট কখনও তৃষ্ণায় মরে না, তবুও এই কৌশলটি ব্যবহার করে এটি ক্ষুধায় মারা যাবে তা ভাবা যায়) pla

পঠনযোগ্য সংস্করণ:

# implicit with -n: read a line of input into $_
push @a, [split //]; #/ split $_ into characters, store at the end of @a
($s,$t) = (length$`,$.) if /S/; # if we see S, store its coordinates
($e,$f) = (length$`,$.) if /E/  # if we see E, store its coordinates
}{ # Due to -n, loop back to start if there are more lines.

# From here onwards, $" stores the partial solution this iteration;
#                    $\ stores the partial solution last iteration;
#                    $_ stores the path from ($s,$t) to S.
# At the start of the program, $" is a space, $\ and $_ are empty.

$_ .=  # Work out the next step on the path:
  $s < $e ? ($s++,R) # if too far left, move right, record that in $_;
: $s > $e ? ($s--,L) # if too far right, move left, record that in $_;
: $t < $f ? ($t++,D) # if too far up,    move down, record that in $_;
: ($t--,U);          # in other cases we must be too far down.
$\ = reverse $";     # Store last iteration; $" is constructed backwards.
$" .=                # Extend $" by appending
  y/LRUD/RLDU/r .    # the path from ($s, $t) back to S;
  Y .                # a literal 'Y';
  reverse .          # $/ backwards (i.e. the path from S to ($s, $t);
  ($"=~y/Y/X/r);     # a copy of $" with all 'Y' changed to 'X'.
$a[$t-1][$s] =~      # At the current path coordinate,
  y/./#/;            # replace any '.' with '#'.
$\ .=                # Start appending to $\;
  $s-$e||$t-$f?redo  # if we're not at E, abort that and jump back to {{,
: $_;                # otherwise append $_ (the path from S to E).
print map            # For each element of some array
  {join'',@$_}       # output its concatenated elements
  @a                 # specifying that array as @a.
# Implicitly: print $\ (which specifies the sort of newline print uses).

প্রস্থানে যাওয়ার দিকনির্দেশের জন্য বিশ্বজুড়ে বন্যা কি আপনার কন্ডিশনাল ব্লকের চেয়ে কম কোড হবে?
স্পার

1
আমি মনে করি না এটি হবে (যদিও এটি সম্ভব এমন কিছু উপায় যা আমি কেবল দেখছি না; এটি অবশ্যই বিবেচনা করার মতো ধারণা)। আপনাকে এখনও চারটি দিক মোকাবেলা করতে হবে এবং আপনাকে এখন মানচিত্রের প্রান্তটিও মোকাবেলা করতে হবে, যা অ্যালগরিদমের এই সংস্করণে কোনও সমস্যা নয়।

ভাল পয়েন্ট, কিনারা। আমি মনে করি এটি অসীম মানচিত্রে করা যেতে পারে।
স্পার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.