চার দূরত্বের সেন্সর সহ আপনার একটি ছোট রোবট রয়েছে। এটি কোনও ঘরের লেআউট জানে, তবে গ্রিড অভিযোজনে লক করতে সক্ষম হওয়া ছাড়া এটির দিকনির্দেশের কোনও ধারণা নেই। আপনি যে রোবটটি রিডিংয়ের উপর ভিত্তি করে রয়েছে তা সন্ধান করতে সক্ষম হতে চান তবে সীমাবদ্ধ সেন্সরগুলির কারণে এটি অস্পষ্ট হতে পারে।
চ্যালেঞ্জ ব্যাখ্যা
আপনাকে একটি রুম লেআউট এবং চারটি ঘড়ির কাঁটার দূরত্বের রিডিং দেওয়া হবে যাতে আপনার এবং একটি প্রাচীরের মধ্যে কোষের সংখ্যা থাকে। ঘরের মাঝখানে দেয়াল থাকতে পারে এবং গ্রিডের প্রান্তগুলিও দেয়াল। রোবটটি কোনও দেয়ালের উপরে স্থাপন করা যাবে না।
আপনার উদ্দেশ্যটি হল রুমটির মধ্যে থাকা সমস্ত অবস্থানের তালিকাবদ্ধ করা যা রোবট এতে থাকতে পারে read মনে রাখবেন যে রোবোটের অভিমুখীকরণের কোনও ধারণা নেই (গ্রিডে 90 ডিগ্রি কোণে লক হওয়া ব্যতীত- যেমন রোবটটি তির্যকভাবে বা অন্য কোনও স্কিউ কোণে কখনই ওরিয়েন্টেড হবে না), সুতরাং [1, 2, 3, 4], উদাহরণস্বরূপ, [3, 4, 1, 2] পড়ার সমান।
উদাহরণ
এই উদাহরণগুলির জন্য, শীর্ষ স্থির বাম ঘর থেকে সেল-স্থানাঙ্কগুলি 0-সূচিযুক্ত (x, y) জোড়া হিসাবে দেওয়া হবে। বর্গক্ষেত্র বন্ধনী তালিকায় পাঠ্যগুলি ঘড়ির কাঁটায় ক্রমানুসারে দেওয়া হবে। লেআউটগুলি খালি ঘরগুলি উপস্থাপনের জন্য দেয়াল এবং অন্যান্য অক্ষরের (সাধারণত বিন্দু) পাউন্ড চিহ্ন ব্যবহার করবে।
মামলা 1
. . . .
. . . .
. . # .
. . . .
- [1, 0, 2, 3] ==> (1, 0), (3, 1)
- [0, 0, 3, 3] ==> (0, 0), (3, 0), (0, 3), (3, 3)
- [2, 1, 1, 0] ==> (0, 2), (2, 1)
- [1, 1, 2, 2] ==> (1, 1)
মামলা 2
# a . # a .
a # . . # a
. . # . . #
# . . # . .
a # . . # a
. a # . a #
- [0, 0, 1, 1] ==> গ্রিডের প্রতিটি অবস্থান যা একটি বিন্দু
- [1, 0, 0, 0] ==> গ্রিডে থাকা সমস্তগুলি
মামলা 3
.
- [0, 0, 0, 0] ==> (0, 0)
মামলা 4
. # #
. . .
- [1, 2, 0, 0] ==> (0, 1)
- [0, 1, 2, 0] ==> (0, 1)
- [0, 0, 1, 0] ==> (0, 0)
- [1, 0, 1, 0] ==> (1, 1)
- [0, 1, 0, 1] ==> (1, 1)
মামলা ৫
. # . .
. . . .
. . # .
. . . .
- [2, 1, 1, 0] ==> (0, 2), (2, 1)
- [0, 2, 2, 1] ==> (1, 1)
- [1, 0, 2, 2] ==> (1, 1)
- [0, 3, 0, 0] ==> (0, 0)
- [1, 0, 1, 1] ==> (1, 2)
অন্যান্য বিধি
- ইনপুট যে কোনও সুবিধাজনক বিন্যাসে থাকতে পারে। ইনপুটটি দেয়াল এবং স্পেসগুলির একটি গ্রিড এবং ঘড়ির কাঁটার ক্রমে চারটি দূরত্বের একটি তালিকা।
- আউটপুট হয় এমন সমস্ত কক্ষের তালিকা হতে পারে যা পাঠকে সন্তুষ্ট করে বা গ্রিডের পরিবর্তিত সংস্করণ দেখাচ্ছে যা দেখায় যে কোষগুলি পাঠকে সন্তুষ্ট করে। আউটপুটটির সঠিক ফর্ম্যাটটি যতক্ষণ না যুক্তিসঙ্গত এবং সামঞ্জস্যপূর্ণ তা বিবেচনা করে না। বৈধ আউটপুট ফর্ম্যাটগুলি অন্তর্ভুক্ত করে তবে সীমাবদ্ধ নয় :
- অর্ডারযুক্ত জোড় হিসাবে প্রতিটি ঘরের সমন্বয়ের জন্য একটি লাইন মুদ্রণ করা
- সঙ্গে গ্রিড মুদ্রণ
.
,#
এবং!
স্থান, দেয়াল, এবং সম্ভব অবস্থানে যথাক্রমে জন্য। - অর্ডার করা জোড়গুলির তালিকা ফিরিয়ে দেওয়া
- সূচকের তালিকা ফিরিয়ে দেওয়া
- শূন্যস্থান, দেয়াল এবং সম্ভাব্য জায়গাগুলির জন্য বিভিন্ন মান ব্যবহার করে তালিকার একটি তালিকা ফেরত
- যেখানে পাঠ ঘটেছিল সেগুলি উপস্থাপন করতে 1s ব্যবহার করে 0 এবং 1 এর ম্যাট্রিক্স প্রিন্ট করুন / মুদ্রণ করুন। (দেয়াল অন্তর্ভুক্ত করার প্রয়োজন নেই)
- আবার, এই তালিকাটি সম্পূর্ণ নয়, সুতরাং অন্যান্য উপস্থাপনাগুলি যতক্ষণ না তারা সামঞ্জস্য থাকে বৈধ এবং গ্রিড বা তালিকার প্রতিটি সম্ভাব্য বৈধ অবস্থান প্রদর্শন করে show আপনি যদি অনিশ্চিত হন তবে একটি মন্তব্য দিন এবং আমি পরিষ্কার করে খুশি হব।
- আপনি ধরে নিতে পারেন যে কোনও পাঠ গ্রিডের কমপক্ষে একটি অবস্থানের সাথে সম্পর্কিত।
- আপনি ধরে নিতে পারেন ইনপুট গ্রিডটি কমপক্ষে 1x1 আকারের এবং কমপক্ষে একটি ফাঁকা জায়গা রয়েছে।
- আপনি ধরে নিতে পারেন যে ইনপুট গ্রিড প্রতিটি মাত্রায় 256 টির বেশি কক্ষের চেয়ে বড় নয়।
- আপনি ধরে নিতে পারেন যে ইনপুট গ্রিডটি সর্বদা একটি নিখুঁত আয়তক্ষেত্র এবং জ্যাগড নয়।
- আপনার প্রোগ্রামটি অবৈধ ইনপুটগুলির জন্য বুদ্ধিমান আউটপুট দেওয়ার ক্ষেত্রে কোনও জরিমানা বা বোনাস নেই।
- এটি কোড গল্ফ, তাই সংক্ষিপ্ততম কোড জয়ী।
Case 5
বেশ সঠিক বলে মনে হয় না। আমি পেতে(0,2),(2,1)
,(1,3)
,(1,3)
, এবংnothing
।