দাবি অস্বীকার: এই প্রশ্নের মধ্যে বর্ণিত গল্পটি সম্পূর্ণ কল্পিত, এবং কেবলমাত্র একটি পরিচিতি সরবরাহের উদ্দেশ্যে উদ্ভাবিত হয়েছিল।
আমার এক বন্ধু যিনি একজন স্থপতি এবং তাঁর কাছে কোড-গল্ফ এবং এই সাইটটির ধারণাটি ব্যাখ্যা করার পরে, তিনি বলেছিলেন যে পরিবর্তনের জন্য আমার দরকারী কিছু কোড করা উচিত। আমি তাকে জিজ্ঞাসা করলাম তিনি কী দরকারী হিসাবে বিবেচনা করবেন, এবং স্থপতি হওয়ায় তিনি উত্তর দিয়েছিলেন যে তিনি একটি ফ্লোর প্ল্যানার পেয়ে উপভোগ করবেন যা তাকে নির্দিষ্ট আকারের একটি বাড়ির ভিতরে নির্দিষ্ট আকারের কক্ষগুলির জন্য সমস্ত সম্ভাব্য ব্যবস্থা দেয়। আমি ভেবেছিলাম যে আমি প্রমাণ করব যে কোড-গল্ফ সর্বোপরি অকেজো ছিল না, এবং এটি সম্ভব বাইটের সংখ্যার মধ্যে এই প্রোগ্রামটি দেব।
তোমার কাজ:
একটি প্রোগ্রাম বা ফাংশন লিখুন, যখন পুরো বাড়ির মাত্রা যুক্ত একটি অ্যারে ডি দেওয়া হয় এবং একটি অভ্যন্তরের কক্ষগুলির মাত্রা, ASCII আর্ট হিসাবে আউটপুট, বাড়ির অভ্যন্তরীণ কক্ষগুলির সমস্ত সম্ভাব্য কনফিগারেশন সমেত একটি দ্বিতীয় অ্যারে আর দেওয়া হয়।
| ব্যবহার করে সমস্ত কক্ষ এবং বাড়ির বাহ্যিক প্রাচীরগুলি স্ট্যান্ডার্ড ASCII বাক্স হিসাবে গঠন করা উচিত উল্লম্ব দেয়ালের জন্য প্রতীক, - অনুভূমিক প্রাচীর হিসাবে প্রতীক এবং কোণগুলির জন্য + প্রতীক। উদাহরণস্বরূপ, মাত্রা [4,4] সহ একটি বাড়িটি দেখতে পাবেন:
+----+
| |
| |
| |
| |
+----+
আপনি দেখতে পাচ্ছেন, কোণগুলি মাত্রার একটি সেট অংশ হিসাবে গণনা করে না। - বা | এর সংখ্যা একটি পক্ষ তৈরির অক্ষরগুলির মাত্রাগুলিতে প্রদত্ত সংখ্যার সমান হওয়া উচিত। ঘরগুলি প্রাচীর ভাগ করে নিতে পারে বা দেয়াল ভাগ করতে পারে। একটি ঘরে নিজের মধ্যে আরও ছোট কক্ষ থাকতে পারে না।
উদাহরণস্বরূপ, কনফিগারেশন
+--+---+-+
| | | |
| | | |
+--+---+ |
| |
| |
+--------+
ডি = [5,8], এবং আর = [[২,২], [২,৩]] এর জন্য বৈধ।
ইনপুট:
দুটি অ্যারে, যার একটিতে দুটি পূর্ণসংখ্যা, বাড়ির মাত্রা এবং অন্যটিতে কক্ষগুলির জন্য মাত্রা যুক্ত সিরিজের একটি অ্যারে রয়েছে।
আউটপুট:
হয় স্ট্রিং হিসাবে সমস্ত সম্ভাব্য বাড়ির একটি অ্যারে, বা সমস্ত সম্ভাব্য ঘর সম্বলিত একটি স্ট্রিং, কিছুটা ধারাবাহিক উপায়ে সীমায়িত হয়। মনে রাখবেন যে ঠিক একই কনফিগারেশনের ঘূর্ণনগুলি কেবল একবার গণনা করা উচিত।
পরীক্ষার কেস:
D R -> Output
[4,3] [[2,1],[4,1]] -> +-+-+ +-+-+ +-+-+ Note that though there is an option to switch which side the [2,1] room and the [4,1] room are on, doing so would merely be rotating the house by 180 degrees, and therefore these possibilities do not count.
| | | +-+ | | | |
+-+ | | | | | | |
| | | | | | +-+ |
| | | +-+ | | | |
+-+-+ +-+-+ +-+-+
[4,7] [[3,1],[4,2],[2,2] -> +----+--+ +----+--+ +----+--+ +----+--+ There are some more possiblities I didn't feel like adding, but it's the same four again, just with the [4,2] and the [2,2] room switched.
| | | | | | | | | | | |
| | | | | | | | | | | |
+---++--+ +--+-+-++ +-+--++-+ ++---+--+
| | | | | || | | | | || | |
+---+---+ +--+---++ +-+---+-+ ++---+--+
স্কোরিং:
এটি কোড-গল্ফ , বাইট জয়ের সর্বনিম্ন স্কোর!
D = [4,2], কিন্তু আপনার বাড়ি [4,3], তাই না?