শীর্ষ-সামনের দিকের ধাঁধাটি এমন একটি ধাঁধা যেখানে আপনাকে তিনটি অরথোগোনাল ভিউ দেওয়া একটি (3 ঘ) সাধারণত ব্লকগুলির 3-ডি আকার তৈরি করতে হবে: একটি শীর্ষ দৃশ্য, একটি সামনের দৃশ্য এবং একটি দিকের দৃশ্য।
উদাহরণস্বরূপ, নীচে উপরে একটি শীর্ষ, সামনের এবং পাশের ভিউ দেওয়া হয়েছে:
Top: Front: Side:
. . . . . . . . . . . .
. x x . . x x . . x x .
. x x . . x x . . x x .
. . . . . . . . . . . .
In this problem, the side view is taken from the right.
একটি 2x2x2 ঘনক্ষেত্র (ভলিউম 8 সহ) এই সমাধানটি সন্তুষ্ট করবে তবে এটি আমাদের 4 টি ভলিউমে করণীয়, যদি আমাদের নিম্নলিখিত স্তর কাঠামো থাকে:
. . . . . . . .
. x . . . . x .
. . x . . x . .
. . . . . . . .
কিছু অবিশ্বস্ত ব্যবস্থাও রয়েছে। উদাহরণস্বরূপ নিন:
Top: Front: Side:
. . . . . . . . . . . .
. . . . . . x . . . . .
. x . . . . . . . x . .
. . . . . . . . . . . .
যদি শীর্ষ দৃষ্টিভঙ্গি বলছে যে ব্লকটি বাম থেকে দ্বিতীয় স্থানে রয়েছে, সামনের দৃশ্যের সাথে মেলে এমন কোনও উপায় নেই যা বলবে যে ব্লকটি অবশ্যই বাম থেকে তৃতীয় হওয়া উচিত। সুতরাং এই ব্যবস্থা অসম্ভব।
আপনার কাজটি এমন একটি প্রোগ্রাম তৈরি করা যা একটি স্বেচ্ছাসেবী 4x4 টপ-ফ্রন্ট-সাইড ধাঁধা দেওয়া, এটি কয়েক কিউবের সংখ্যায় সমাধান করার চেষ্টা করে, বা এটি অকেজো বলে ঘোষণা করে।
আপনার প্রোগ্রামটি শীর্ষ, সামনের এবং পার্শ্বের মতামতগুলিকে উপস্থাপন করে 48 বিটের একটি সিরিজ ইনপুট হিসাবে গ্রহণ করবে। এগুলি আপনার যে কোনও ফর্ম্যাটে থাকতে পারে (একটি 6-বাইট স্ট্রিং, 0 এর এবং 1 এর স্ট্রিং, একটি 12-অঙ্কের হেক্স নম্বর ইত্যাদি) তবে বিটের ক্রমটি অবশ্যই এই জাতীয় মানচিত্রের মানচিত্র:
Top: 0x00 Front: 0x10 Side: 0x20
0 1 2 3 0 1 2 3 0 1 2 3
4 5 6 7 4 5 6 7 4 5 6 7
8 9 a b 8 9 a b 8 9 a b
c d e f c d e f c d e f
অন্য কথায়, বিটগুলি বাম থেকে ডানে, উপরে থেকে নীচে ক্রমে, শীর্ষে, তারপরে সামনের, তারপরে পাশের দৃশ্যে যায়।
আপনার প্রোগ্রামটি তখন ভরাট করা 4x4x4 গ্রিডের কিউবগুলিকে নির্দেশ করে b৪ বিটের একটি সিরিজ আউটপুট দেবে, বা গ্রিডটি অবিশ্বাস্য indicate
আপনার প্রোগ্রামটি 1,000,000 পরীক্ষার ক্ষেত্রে ব্যাটারি চালিয়ে স্কোর করা হবে।
পরীক্ষার তথ্যটি "990099" এর মাধ্যমে "990099" এর মাধ্যমে "990099" এর এমডি 5 হ্যাশগুলি স্ট্রিং হিসাবে গ্রহণ করে, এই প্রতিটি হ্যাশের প্রথম 48 বিট (12 হেক্সট) বের করে এবং এগুলি শীর্ষ-ফ্রন্ট- এর ইনপুট হিসাবে ব্যবহার করে তৈরি করা হবে পাশ ধাঁধা উদাহরণস্বরূপ, এখানে কিছু পরীক্ষার ইনপুট এবং ধাঁধা তারা উত্পন্ন করে:
Puzzle seed: 000000 hash: 670b14728ad9
Top: Front: Side:
. x x . . . . x x . . .
x x x x . x . x x . x .
. . . . . x x x x x . x
x . x x . . x . x . . x
Puzzle seed: 000001 hash: 04fc711301f3
Top: Front: Side:
. . . . . x x x . . . .
. x . . . . . x . . . x
x x x x . . . x x x x x
x x . . . . x x . . x x
Puzzle seed: 000157 hash: fe88e8f9b499
Top: Front: Side:
x x x x x x x . x . x x
x x x . x . . . . x . .
x . . . x x x x x . . x
x . . . x . . x x . . x
প্রথম দুটি সমাধানযোগ্য নয়, সর্বশেষে নিম্নলিখিতটির সাথে সামনের থেকে পিছনে একটি সমাধান রয়েছে:
x . . . . . . . x x x . x x x .
. . . . x . . . . . . . . . . .
x . . . . . . . . . . . x x x x
x . . . . . . . . . . . x . . x
There are a total of 16 blocks here, but it can probably be done in less.
আপনার প্রোগ্রামের স্কোর অগ্রাধিকারের ক্রমবর্ধমান ক্রমে নিম্নলিখিত মানদণ্ডের দ্বারা নির্ধারিত হবে:
- সর্বাধিক সংখ্যক সমাধান হওয়া মামলা।
- এই মামলাগুলি সমাধানের জন্য সবচেয়ে কম ব্লকের প্রয়োজন।
- বাইটের মধ্যে সংক্ষিপ্ততম কোড।
আপনাকে অবশ্যই নিজের দ্বারা স্কোর জমা এবং গণনা করতে হবে, যার জন্য আপনার প্রোগ্রামটি সমস্ত 1,000,000 পরীক্ষার ক্ষেত্রে চালাতে সক্ষম হওয়া প্রয়োজন।