আমার কাছে পরিষ্কার মোজার একটি গাদা আছে যা আমি জোড়াগুলিতে সাজতে চাই। দুর্ভাগ্যক্রমে, আমি কেবল স্তূপের উভয় প্রান্ত থেকে মোজা নিতে পারি, মাঝেরটি নয়। আরও, আমি কেবল একবারে গাদা জুড়ি থেকে মুছে ফেলতে পারি। আমার কৌশলটি হ'ল প্রথমে স্তূপটিকে এক বা একাধিক ছোট পাইলগুলিতে ভাগ করা। আমি মনে করি কিছু উদাহরণ এটি পরিষ্কার করে দেবে। আমি প্রতিটি মোড়কে ধনাত্মক পূর্ণসংখ্যা হিসাবে উপস্থাপন করব (মিলের পূর্ণসংখ্যার সমান মোজা নির্দেশ করে)।
যদি মোজার প্রাথমিক স্তূপ হয়
1 2 3 3 2 1
তাহলে আমাকে কোনও বিভাজন করতে হবে না। আমি উভয় 1
মোজা, তারপর উভয় 2
মোজা, তারপর উভয় 3
মোজা মুছতে পারি ।
পরিবর্তে প্রাথমিক স্তূপ হয়
1 2 3 2 3 1
তারপরে আমাকে প্রথমে এটি বিভক্ত করতে হবে কারণ আমি সমস্ত মোজাগুলি কেবল শেষ থেকে সরিয়ে নিয়ে জোড়া করতে সক্ষম হব না। একটি সম্ভাবনা এটি দুটি গাদা মধ্যে বিভক্ত হয়
1 2 3 and 2 3 1
এখন আমি 1
মোজাগুলি, ছাড়ার 2 3 and 2 3
পরে, 3
মোজা অনুসরণ করে , ছেড়ে যাওয়া 2 and 2
এবং অবশেষে মোজাগুলি মুছতে পারি 2
।
আপনার কাজ
মোজাগুলির প্রাথমিক স্তূপ দেওয়া, এমন একটি প্রোগ্রাম লিখুন যা এটি ছোট পাইলগুলিতে বিভক্ত করবে যা আমাকে মোজাগুলি বাছাই করতে দেয়। আপনার প্রোগ্রামটি গাদাটিকে কয়েকটি সংখ্যক পাইল সম্ভাব্য সংখ্যায় বিভক্ত করতে হবে (যদি একাধিক সেরা সমাধান থাকে তবে আপনাকে কেবল একটি সন্ধান করতে হবে)।
ইনপুটটি তালিকা, সীমানাযুক্ত স্ট্রিং বা অন্যান্য সুবিধাজনক ফর্ম হিসাবে দেওয়া হবে। এটিতে প্রতিটি পূর্ণসংখ্যার ঠিক দু'বার সংঘটিত হওয়ার সাথে কেবলমাত্র 1
কয়েকটি পূর্ণসংখ্য এবং কয়েকটি সর্বাধিক মান n
থাকে।
আউটপুটটি কোনও সুবিধাজনক আকারে দেওয়া ইনপুট তালিকাটিকে ছোট তালিকায় বিভক্ত হওয়া উচিত।
উদাহরণ
Input Sample Output
1 1 1 1
1 2 1 2 1; 2 1 2
1 3 2 4 3 2 1 4 1 3 2; 4 3 2 1 4
1 2 3 4 3 4 1 2 1; 2 3; 4 3 4 1 2
1 1 2 2 3 3 1 1 2; 2 3 3
4 3 4 2 2 1 1 3 4 3 4 2; 2 1 1 3
মনে রাখবেন যে এইগুলির বেশিরভাগ ইনপুটগুলির জন্য এটি কেবলমাত্র অনুমোদিত আউটপুট নয়। দ্বিতীয় ক্ষেত্রে, উদাহরণস্বরূপ, আউটপুট 1 2; 1 2
বা 1 2 1; 2
স্বীকৃত হবে।
কিছু পরীক্ষার পরামর্শের জন্য Sp3000 ধন্যবাদ!
আমি আমার জামাকাপড় বাছাই করা দীর্ঘ সময় ব্যয় করা ঘৃণা করি, তাই আপনার কোডটি যতটা সম্ভব সংক্ষিপ্ত করুন। বাইট জিতে স্বল্পতম উত্তর!
নোট
- এর মোড়ের জুড়ি আছে কিনা তা দেখার জন্য আমি কোনও মোড়ের পিছনে তাকাতে চাই না, সুতরাং উভয় মোজা একই পাত্রে জোড়া লাগানোর অনুমতি নেই। উদাহরণস্বরূপ, যদি গাদাটি থাকে
1 1 2 2
তবে আপনি এটিকে একটি গাদা হিসাবে ছেড়ে দিতে এবং1
বাম প্রান্ত থেকে উভয় মোজা নিতে পারবেন না ।
123213
ভাগ করা যায় ? 1; 23; 213
1; 23; 213
1; 2; 21
; 2; 2
123213
শুধুমাত্র দুটি পাইল ব্যবহার করে বিভক্ত হওয়া সম্ভব , তাই আপনার উত্তরটি দুটি পাইল বিভক্ত করে দিতে হবে give