হাশিওওয়াকেরো (জাপানি ভাষায় "সেতুগুলি তৈরি করুন") একটি ধাঁধা যেখানে আপনাকে ব্রিজের সাথে একদল দ্বীপের সংযোগ করার দায়িত্ব দেওয়া হয়। বিধিগুলি হ'ল:
- দুটি দ্বীপের মধ্যে সেতুগুলি উলম্ব বা অনুভূমিকভাবে চলতে হবে।
- ব্রিজগুলি একে অপরকে অতিক্রম করতে পারে না।
- দ্বীপের একটি জোড়া প্রায় দুটি সমান্তরাল সেতুর সাথে সংযুক্ত হতে পারে।
- প্রতিটি দ্বীপ 1 এবং 8 এর মধ্যে সংখ্যার সাথে চিহ্নিত, অন্তর্ভুক্ত। একটি দ্বীপে সংযুক্ত সেতুর সংখ্যা অবশ্যই সেই দ্বীপের সংখ্যার সাথে মেলে।
- সেতুগুলি অবশ্যই দ্বীপগুলিকে একটি একক সংযুক্ত গ্রুপে সংযুক্ত করতে হবে।
আপনার কাজটি হ্যাসিওওয়াকেরো ধাঁধা সমাধান করবে এমন একটি প্রোগ্রাম লিখতে হবে।
আপনি ধরে নিতে পারেন যে প্রদত্ত যে ধাঁধাটি সমাধানযোগ্য এবং তার একমাত্র সমাধান রয়েছে।
প্রোগ্রামটি যথাযথভাবে দক্ষ হওয়া উচিত। উদাহরণস্বরূপ, নীচের 25x25 ধাঁধাটি সমাধান করতে গড় পিসিতে 10 মিনিটের বেশি সময় নেওয়া উচিত নয় এবং এটি গিগা বাইটের মেমরির চেয়ে বেশি ব্যবহার করা উচিত নয়। 7x7 এর মতো ছোট ধাঁধা সমাধান করতে কয়েক সেকেন্ড সময় নেওয়া উচিত।
ইনপুট:
ধাঁধা অক্ষরের একটি 2D মানচিত্র হিসাবে দেওয়া হবে, সংখ্যা সঙ্গে 1থেকে8 প্রতিনিধিত্বমূলক দ্বীপ, এবং স্পেস পানি উপস্থাপন করে। সমস্ত একই দৈর্ঘ্য তৈরি করার জন্য প্রয়োজনীয় হলে লাইনগুলি স্পেস দিয়ে প্যাড করা হবে।
দ্বীপপুঞ্জগুলি সর্বদা অনুভূমিক এবং উল্লম্বভাবে পৃথকভাবে কমপক্ষে এক বর্গ জলের দ্বারা পৃথক করা হবে যাতে তাদের মধ্যে সম্ভাব্য সেতু স্থাপনের জন্য জায়গা থাকে। একটি ধাঁধাতে সর্বদা কমপক্ষে দুটি দ্বীপ থাকবে।
আপনার প্রোগ্রামটি প্রমিতভাবে স্ট্যান্ডার্ড ইনপুট থেকে ধাঁধা মানচিত্রটি পড়া উচিত, তবে আপনার প্রোগ্রামিং ভাষার প্রয়োজন হলে আপনি একটি বিকল্প ইনপুট পদ্ধতি নির্দিষ্ট করতে পারেন।
আউটপুট:
আউটপুটটি ইনপুটটির মতো হওয়া উচিত, প্রয়োজনীয় ব্রিজগুলি দ্বারা প্রতিস্থাপিত স্থানগুলি ব্যতীত। অনুভূমিক এবং উল্লম্ব একক এবং ডাবল সেতুর প্রতিনিধিত্ব করতে সেতুগুলি ইউনিকোড বক্স অঙ্কন অক্ষর ─(U + 2500), │(U + 2502), ═(U + 2550) এবং ║(U + 2551) ব্যবহার করে আঁকা উচিত ।
ইউনিকোড অক্ষর একটি সমস্যা হন, তাহলে আপনি ASCII অক্ষর ব্যবহার করতে পারেন -, |, =এবং Hপরিবর্তে।
জয়ের মানদণ্ড:
এটি কোড গল্ফ। সংক্ষিপ্ততম সঠিক এবং যুক্তিসঙ্গতভাবে কার্যকর সমাধান জিতল।
উদাহরণ:
ধাঁধা (7x7):
2 2 1
1 4 3
3 2
4
3 2 3
1
3 4 2
সমাধান:
2─2──1
│1──4─3
3──2║ ║
│ │4 ║
│3─2║ 3
1║ ║ │
3──4─2
ধাঁধা (25x25):
2 2 2 2 1 1 2 2 2 2 2
1 3 5 4 4 2
2 2 4 5 5 4 2 2 1 3
2 1 1 3 3 2 2
3 4 4 4 4 5 4 3 2 3
2 4 5 4 2 3
2 1 4 2 4 3 1 1 2
2 1 3 1 1 6 4 2
3 2 4 3 6 3 2
2 2 3 3 2 5 2 4 3
2 1 1 2
1 3 3 3 3 5 8 7 6 5 4
2 3 1 1 2
1 1 5 1 4 5 6 3 1 2
1 1 2 2 3 4
3 5 4 4 3 3 8 7 5 1 2
2 3 1 2 2 1 1
2 2 2 2 5 7 6 3 3
3 3 6 3 5 3 2 2 2 3
2 1 2 3 2 2
3 4 6 4 5 5 3 3 5 1
2 1 2 2 1 1 3
2 1 1 2 3 6 5 2 2
2 3 4 4 4 2 1
2 2 2 2 2 2 2 1 1 3 2
সমাধান:
2─2─2──2 1 1─2─2──2──2─2
│ │ │1─3═5══4══4─2│
2 2─4─5══5═4═2│2──1 │ │3
│ 2│ ║1│ 1─3═3─2│ │ 2║
│ ║3═4│4══4─4═5─4─3──2 │3
2 4═5─4│ │ │ ║ │ │2───3│
│2─1║ ║4─2│ 4─3 │ 1│ 1 │2
2│1─3 ║║ │1 ║1──6══4 │ 2│
│3─2──4║ 3══6─3 ║ │ │ │2
2│2═3 │3──2 │ ║ 5─2│ 4─3│
│2─1│ │ │ │ ║ ║ │1 ║ │2
│ 1─3─3─3─3─5═8═7═6──5═4│
2──3───1│1─2│ ║ │ ║ ││
1 │ 1──5─1││ 4─5─6─3─1│2
1│ │1──2║ │2 │ ║ ║ │3═4│
│3─5═4 │4──3│ 3═8═7═5│1│2
2│ │ ║ 3│ 1│2──2║ │ ║1│1│
│2 │ ║ ║2 │2──2│5═7═6─3─3
3│ 3─6─3│ 5═3 │2│ ║2│2─3│
║2 │ ║ │ ║ │ 1│2─3║2│ ║2
3│ 4═6──4─5─5──3─3─5││1║│
│2 │ │1 │ │2║2──1│ ║1││3│
2│ │ 1│ │ 1║2│3══6═5─2││2
│2─3──4═4──4─2│ │ │1│
2─2──2─2──2─2─2 1 1─3─2
1 1ইনপুট হওয়ার মতো বিজোড় মামলাগুলি নিয়ে চিন্তা করতে হবে ?
1 1, যা একটি বৈধ ধাঁধা এবং এটি সঠিকভাবে পরিচালনা করা উচিত।