সমস্যা বিবৃতি
N পূর্ণসংখ্যার একটি অ্যারে দেওয়া হয়েছে। অ্যারের সমস্ত উপাদানের বিটওয়াইজ OR একটি কাজ সম্পাদন করে সর্বাধিক করতে হবে। কাজটি হল অ্যারের যেকোনো উপাদানকে একটি প্রদত্ত পূর্ণসংখ্যা x
দিয়ে সর্বাধিক k বার গুণ করাযদি ইনপুট অ্যারে হয় {4, 3, 6, 1}, k =2 এবং x =3 তাহলে সর্বাধিক মান পাওয়া যাবে 55
অ্যালগরিদম
<পূর্ব>1. একটি অ্যারে উপাদানকে (x^k) দিয়ে গুণ করুন এবং বিটওয়াইজ করুন বা এটিকে বিটওয়াইজ বা পূর্ববর্তী সমস্ত উপাদানের 2 দিয়ে করুন। একটি অ্যারে উপাদানকে বিটওয়াইজ দিয়ে গুন করুন OR পরবর্তী সমস্ত উপাদানের ৩. সমস্ত পুনরাবৃত্তির পরে সর্বাধিক মান ফেরত দিনউদাহরণ
#includeনেমস্পেস ব্যবহার করে std;int getMaxOr(int *arr, int n, int k, int x){ int prefixSum[n + 1]; int suffixSum[n + 1]; int শক্তি =1; জন্য (int i =0; i =0; --i) { প্রত্যয়সাম[i] =প্রত্যয়[i + 1] | arr[i]; } int ফলাফল =INT_MIN; জন্য (int i =0; i আউটপুট
আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট-
তৈরি করেফলাফল =55