কম্পিউটার

C/C++ সূচকের একটি পরিসরের মধ্যে সর্বাধিক মান পেতে একটি বাইনারি স্ট্রিং সাজান?


শুধুমাত্র 0 এবং 1 এর সমন্বিত একটি প্রদত্ত স্ট্রিংয়ের ক্ষেত্রে, আমাদেরকে M নন-ইন্টারসেক্টিং রেঞ্জ দেওয়া হয় A, B( A <=B), আরও নির্দিষ্টভাবে [A1, B1], [A2, B2], …, [AM, BM], এই দুটি ব্যবধান ওভারল্যাপ হয় না — আনুষ্ঠানিকভাবে, প্রতিটি বৈধ i, j যেমন i!=j, হয় Ai

ক্রিয়াকলাপ হল একটি আইনি বা বৈধ স্থানান্তর খুঁজে বের করা যা নিম্নলিখিত দুটি শর্ত একই সাথে ধরে রাখবে -

  • সমস্ত M প্রদত্ত ব্যাপ্তির মধ্যে সংখ্যার যোগফল হবে সবচেয়ে বড়৷

  • স্ট্রিংটি আভিধানিকভাবে সর্বাধিক হবে। একটি স্ট্রিং 1100 স্ট্রিং 1001 এর চেয়ে অভিধানগতভাবে উচ্চতর।

উদাহরণ

Input
11100
3
3 4
5 5
Output
00111
First we put 1’s in position 3 and 4 then in 5 as there are no 1’s left, the string formed is 00111.
Input
0000111
2
1 1
1 2
Output
1110000

উপরের উদাহরণে আমরা 1ম 1ম এবং 2য় অবস্থানে 1 রাখি তারপর আমাদের আর একটি '1' বাকি আছে,

সুতরাং, আমরা এটিকে অভিধানিকভাবে স্ট্রিংটিকে সর্বাধিক করার জন্য ব্যবহার করি এবং আমরা এটিকে 3য় অবস্থানে রাখি এবং এইভাবে পুনর্বিন্যাস সম্পূর্ণ হয়৷


  1. C++ এ একটি পরিসর থেকে একটি জোড়ার সর্বোচ্চ XOR মান

  2. C++ এ একটি স্ট্রিং বাইনারি অনুসন্ধান করুন

  3. C++ এ সংযুক্ত বাইনারি স্ট্রিং-এ সর্বাধিক ধারাবাহিক শূন্য

  4. C/C++ এ একটি স্ট্রিং বিপরীত করুন