বই স্ট্যাক করার সময় আপনি সাধারণত নীচে সবচেয়ে বড় এবং শীর্ষে থাকা ছোট ছোটগুলি রাখতে চান। যাইহোক, আমার সুপ্ত ওসিডি আমাকে দু'টি বই পেয়েছে যেখানে একটি ছোট (উচ্চতায়) তবে অন্যটির চেয়ে প্রশস্ত। আমি তাদের যে আদেশে রেখেছি তা বিবেচ্য নয়, শীর্ষস্থানীয় বইটি একদিকে নীচের বইয়ের বাইরে প্রসারিত হবে।
উদাহরণস্বরূপ, বলুন একটি বইয়ের মাত্রা রয়েছে (10,15)
এবং অন্যটির রয়েছে মাত্রা (11,14)
। আমি তাদের যেদিকেই রেখেছি তা বিবেচনা করেই নয়, আমি একটি ওভারহান পেয়েছি। তবে আমার যদি ডাইমেনশন সহ বই আছে (4,3)
এবং (5,6)
, আমি পূর্বেরটির নীচের অংশটি রেখে অতিরিক্ত চাপ এড়াতে পারি।
এই চ্যালেঞ্জের উদ্দেশ্যে আমরা কেবলমাত্র নীচের বইয়ের সাথে সম্পর্কিত ওভারহ্যাঙ্গগুলি বিবেচনা করব । যেমন আমি যদি একটি স্ট্যাক আছে (5,5)
, (3,3)
, (4,4)
(যে কোন বিবেকী ব্যক্তির তা করতে হবে না), একটি ত্রিশঙ্কু যেমন উপরের বই গন্য, যদিও এটি নীচে বই অতিক্রম প্রসারিত করে না। একইভাবে, স্ট্যাক (3,3)
, (3,3)
, (4,4)
শুধু এক ত্রিশঙ্কু, শীর্ষ বই নীচে এক পরলোক ব্যাপ্ত সত্ত্বেও হয়েছে।
চ্যালেঞ্জ
বইয়ের মাত্রাগুলির জন্য পূর্ণসংখ্যার জোড়ার একটি তালিকা দেওয়া হয়েছে, সেই জুটিগুলি / বইগুলিকে সারণি করুন যাতে ওভারহ্যাংগুলির সংখ্যা সর্বনিম্ন। আপনার অবশ্যই বইগুলি ঘোরানো উচিত নয় - আমি চাই সমস্ত দিকের মেরুদণ্ড একই দিকে facing যদি একই সংখ্যক ওভারহ্যাংগুলির সাথে একাধিক সমাধান থাকে তবে আপনি এই জাতীয় কোনও আদেশ চয়ন করতে পারেন। আপনার বাছাই অ্যালগরিদম স্থিতিশীল হতে হবে না। আপনার বাস্তবায়ন ধরে নিতে পারে যে বইয়ের মাত্রা প্রতি 2 টিরও কম 16 ।
সময়ের জটিলতা: এটিকে আরও আকর্ষণীয় করে তুলতে আপনার অ্যালগরিদমের অ্যাসিম্পটোটিক সবচেয়ে খারাপ-জটিল জটিলতা অবশ্যই স্ট্যাকের আকারে বহুপদী হতে হবে। সুতরাং আপনি কেবল প্রতিটি সম্ভাব্য ক্রমটি পরীক্ষা করতে পারবেন না। দয়া করে আপনার অ্যালগরিদমের অনুকূলতা এবং জটিলতার একটি সংক্ষিপ্ত প্রমাণ অন্তর্ভুক্ত করুন এবং বিকল্পভাবে একটি প্লট যা বড় এলোমেলো ইনপুটগুলির জন্য স্কেলিং দেখায়। অবশ্যই, আপনি ইনপুটটির সর্বোচ্চ আকারটি যুক্তি হিসাবে ব্যবহার করতে পারবেন না যে আপনার কোডটি ও (1) এ চলে।
আপনি কোনও প্রোগ্রাম বা ফাংশন লিখতে পারেন, STDIN, ARGV বা ফাংশন আর্গুমেন্টের মাধ্যমে কোনও সুবিধাজনক (প্রাকপ্রসেসড নয়) তালিকার ফর্ম্যাটে ইনপুট নিতে পারেন এবং ফলটি মুদ্রণ বা ফিরে আসতে পারেন।
এটি কোড গল্ফ, তাই সংক্ষিপ্ত উত্তরটি (বাইটে) জেতে।
আমি আত্মবিশ্বাসী যে একটি বহুপদী-সমাধান বিদ্যমান, তবে আপনি যদি আমাকে ভুল প্রমাণ করতে পারেন তবে আপনি গল্ফযুক্ত জমা দেওয়ার পরিবর্তে এই জাতীয় প্রমাণ জমা দিতে পারেন। এই ক্ষেত্রে, আপনি P ≠ NP ধরে নিতে পারেন । আমি এই জাতীয় প্রথম সঠিক প্রমাণ গ্রহণ করব এবং এটিকে একটি অনুদান দেব award
উদাহরণ
In: [[1, 1], [10, 10], [4, 5], [7, 5], [7, 7], [10, 10], [9, 8], [7, 5], [7, 5], [3, 1]]
Out: [[10, 10], [10, 10], [9, 8], [7, 7], [7, 5], [7, 5], [7, 5], [4, 5], [3, 1], [1, 1]]
In: [[4, 5], [5, 4], [5, 4], [5, 4], [5, 4], [4, 5], [4, 5], [4, 5], [5, 4], [4, 5]]
Out: [[4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [5, 4], [5, 4], [5, 4], [5, 4], [5, 4]]
or [[5, 4], [5, 4], [5, 4], [5, 4], [5, 4], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5]]
In: [[2, 3], [1, 1], [5, 5], [7, 1]]
Out: [[5, 5], [2, 3], [7, 1], [1, 1]]
or [[5, 5], [2, 3], [1, 1], [7, 1]]
or [[7, 1], [5, 5], [2, 3], [1, 1]]
or [[7, 1], [1, 1], [5, 5], [2, 3]]
আমি এগুলি হাতে হাতে তৈরি করেছি, সুতরাং আপনি যদি কোনও ভুল চিহ্নিত করেন তবে আমাকে জানান।