এই সমস্যায়, আমাদের একটি অ্যারে এবং একটি সংখ্যা k দেওয়া হয়েছে। আমাদের কাজ হল এমন একটি প্রোগ্রাম তৈরি করা যা c++ এ প্রদত্ত অ্যারে k সময় পুনরাবৃত্তি করে গঠিত অ্যারেতে সর্বাধিক সাব্যারে যোগফল খুঁজে পাবে।
সমস্যা বর্ণনা − এখানে, আমরা প্রদত্ত অ্যারের k বার পুনরাবৃত্তি করে গঠিত অ্যারে থেকে গঠিত সাবয়ারের সর্বোচ্চ যোগফল খুঁজে পাব।
সমস্যাটি বোঝার জন্য একটি উদাহরণ দেওয়া যাক,
ইনপুট − অ্যারে ={3, 5, 1} k =2
আউটপুট − 18
ব্যাখ্যা −
<প্রি>ক বার পুনরাবৃত্তি করে তৈরি অ্যারে, অ্যারে ={3, 5, 1, 3, 5, 1}সর্বোচ্চ সাবয়ারের যোগফল =3+5+1+3+5+1 =18এই সমস্যা সমাধানের জন্য, আমরা অ্যারের সমস্ত উপাদানের যোগফল গণনা করব।
তারপর যোগফলের উপর ভিত্তি করে, আমরা সাব্যারে যোগফল গণনা করব।
যোগফল> 0 হলে, আমরা অ্যারের যোগফল কে গুণ করব যা প্রকৃত যোগফল দিয়েছে।
যোগফল <0 হলে, আমরা maxSum সহ দুটি অ্যারের পুনরাবৃত্তি গ্রহণ করে সাবয়ারে খুঁজে পাব।
উদাহরণ
আমাদের সমাধানের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম,
#includeনেমস্পেস ব্যবহার করে std;void repeatArray(int *arr, int *b, int k,int len) { int j =0; যখন (k> 0){ (int i =0; i 0) maxSum =subArraySum(b,2*len) + (k - 2) * arraySum; রিটার্ন maxSum;}int main() { int arr[] ={ 3, 5, 1}; int length=sizeof(arr)/sizeof(arr[0]); int k =3; cout<<"প্রদত্ত অ্যারে "< আউটপুট
প্রদত্ত অ্যারেটি 3 বার পুনরাবৃত্তি করে তৈরি অ্যারেতে সর্বাধিক সাবয়ারের যোগফল হল 27