ক্রিসমাস দ্রুত এগিয়ে আসছে এবং এর সাথে, বার্ষিক পরিবার গোপন সান্তা সাজিয়ে তুলছে। আমি চেষ্টা করে দেখতে চাই এবং এটি শুরু করতে চাই তবে দম্পতিরা একে অপরের জন্য ক্রয় না করার কারণে সমস্যা সৃষ্টি হয় এবং বছরের পর বছর ধরে এই সমস্যা সত্ত্বেও Bobবেশিরভাগ উপহারের জন্য উপহার কেনার ক্ষেত্রে বেশ সমস্যা আছে , Erinহতাশ হবেন সম্ভবত, তবে তিনি জানেন যে Frankটালিসকারকে পছন্দ করে, তাই তিনি তাঁর পক্ষে একটি দুর্দান্ত ম্যাচ। এটি আমার প্রয়োজনগুলির জন্য বিদ্যমান সহজ সমাধানগুলির কোনওটিকেই গ্রহণযোগ্য করে তোলে না।
আমার জীবনকে আরও সহজ করার জন্য, আপনার কাজটি এমন একটি ফাংশন (বা আপনার ভাষার নিকটতম বিকল্প) লিখতে হবে যা অ্যারের একটি অ্যারে দেওয়া (বা আপনার নির্বাচিত ভাষায় নিকটতম বিকল্প) দেওয়া হলে, (বা আউটপুট) 'গিফটারস' এর সাথে একটি জুড়ি দেয় বাইটগুলির মধ্যে সংক্ষিপ্ততম কোডে 'জিফটি', যেমন নিম্নলিখিত শর্তগুলি পূরণ করা হয়:
- প্রতিটি নাম অপরটির সাথে যুক্ত হয়, এলোমেলোভাবে নির্বাচিত, ইনপুট ডেটা থেকে নাম (নোট করুন যে প্রদত্ত শর্তগুলির উপর ভিত্তি করে আউটপুটটিকে এলোমেলো করে দেওয়া সবসময় সম্ভব না)
- নামগুলি একটি প্রতিনিধিত্ব করে এমন পতাকাগুলির একটি তালিকা সরবরাহ করা হবে ক্রমের সামঞ্জস্যের সাথে সংলগ্ন ম্যাট্রিক্সের , যাতে সেই কলামটি
nএকই ব্যক্তিকে সারি হিসাবে উল্লেখ করেn। - শর্তগুলি পূরণ করতে না পারলে, আপনার ভাষায় মিথ্যা কিছু ফিরিয়ে দিন।
- যদি একাধিক সমাধান থাকে তবে আপনার প্রোগ্রামটি অবশ্যই বহুবার চালালে এগুলি সমস্ত উত্পন্ন করতে সক্ষম হতে হবে।
আপনি ধরে নিতে পারেন যে আপনাকে কখনই সদৃশ নাম সহ উপস্থাপন করা হবে না কারণ আমাদের পরিবারের কোন সদস্যটি তা জানাতে সক্ষম হতে হবে তবে আপনাকে এমন ডেটা সহ উপস্থাপন করা যেতে পারে যাতে আলাদা করার জন্য স্পেস রয়েছে Bob Senior থেকে Bob Junior! এটি উত্সাহিত বড় পরিবারগুলির জন্য সরবরাহিত সমস্ত পরীক্ষার ক্ষেত্রে এক ঘন্টার মধ্যে সম্পূর্ণ করা উচিত, যেমন উত্সের ডেটাতে 100 টি অনন্য নাম (দয়া করে নীচের উদাহরণস্বরূপ ডেটা সেটগুলি দেখুন, আপনাকে অবশ্যই বরাদ্দ সময়ের মধ্যে এই সমস্তগুলি বিশ্লেষণ করতে সক্ষম হতে হবে)।
উদাহরণ ইনপুট:
santa([
["Alice", 0, 0, 1, 1, 1, 1, 1],
["Bob", 0, 0, 0, 0, 0, 1, 0],
["Carla", 1, 1, 0, 0, 0, 1, 1],
["Dan", 1, 1, 0, 0, 0, 1, 1],
["Erin", 1, 1, 0, 0, 0, 1, 1],
["Frank", 1, 1, 1, 1, 1, 0, 1],
["Gary", 1, 1, 1, 1, 1, 1, 0]
]);
// might return something like:
[
["Alice", "Erin"],
["Bob", "Frank"],
["Carla", "Alice"],
["Dan", "Gary"],
["Erin", "Bob"],
["Frank", "Dan"],
["Gary", "Carla"]
]
santa([
["Alice", 0, 1, 1, 1, 0, 1],
["Bob", 0, 0, 1, 1, 0, 1],
["Carla", 0, 1, 0, 1, 0, 1],
["Dan", 0, 1, 1, 0, 0, 0],
["Erin", 0, 0, 1, 0, 0, 1],
["Frank", 1, 1, 1, 1, 1, 0]
]);
false
santa([
["Alice", 0, 1, 1],
["Bob", 1, 0, 1],
["Carla", 1, 1, 0]
]);
[
["Alice", "Bob"],
["Bob", "Carla"],
["Carla", "Alice"]
]
ভাষার উপর নির্ভর করে, ইনপুটটি অন্য ফর্ম্যাটে STDIN হতে পারে , উদাহরণস্বরূপ বিশদটি সরবরাহ করা যেতে পারে:
script <<< 'Alice,0,0,1,1,1,1,1
Bob,0,0,0,0,0,1,0
Carla,1,1,0,0,0,1,1
Dan,1,1,0,0,0,1,1
Erin,1,1,0,0,0,1,1
Frank,1,1,1,1,1,0,1
Gary,1,1,1,1,1,1,0'
আউটপুট যে কোনও সংবেদনশীল বিন্যাসে সরবরাহ করা যেতে পারে, আপনার ভাষার পক্ষে যেটি সহজ। গ্রহণযোগ্য ফর্ম্যাটগুলির মধ্যে অ্যারেগুলির একটি অ্যারে (উপরে হিসাবে) বা সম্ভবত একটি হ্যাশ / Object/ এসোসিয়েটিভ অ্যারে বা এমনকি কেবল পার্সিংগুলি মুদ্রণ করা রয়েছে STDOUT:
Alice:Dan
Bob:Erin
Carla:Bob
Dan:Alice
Erin:Frank
Frank:Carla
যদি সন্দেহ হয় তবে দয়া করে আপনার উত্তর সহ প্রয়োজনীয় ইনপুট ফর্ম্যাট এবং প্রত্যাশিত আউটপুট ফর্ম্যাট এর উদাহরণ জিজ্ঞাসা করুন এবং সরবরাহ করুন।
জাভাস্ক্রিপ্ট বাস্তবায়ন রেফারেন্স ।
আরও বড় ডেটা সেট: 100 , 100 , 200 , 200 - অনেকগুলি সমাধান , 200 - শুধুমাত্র এক সমাধান ।
রেফারেন্স বাস্তবায়ন আমার মেশিনে <4 এস এ সমস্ত সম্পূর্ণ করে।
এই স্ক্রিপ্ট দিয়ে উত্পন্ন সেট উপরে ।
Bobকরে Erin? আমি শুধু থেকে এক দেখতে Erinকরতে Bob।
1kth subarray এর (n + 1) তম উপাদানটির অর্থ kth ব্যক্তি nth ব্যক্তিকে দিতে পারে?