এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম নিয়ে আলোচনা করব যাতে সর্বাধিক পরবর্তী যোগফল বের করা যায় যাতে কোনো তিনটি পরপর হয় না।
এর জন্য আমাদেরকে ধনাত্মক পূর্ণসংখ্যার একটি সিরিজ দেওয়া হবে। আমাদের কাজ হল যোগফলের মানের মধ্যে তাদের ক্রমাগত ধনাত্মক পূর্ণসংখ্যা না নিয়ে সর্বাধিক যোগফল খুঁজে বের করা।
উদাহরণ
#include <bits/stdc++.h> using namespace std; //returning maximum subsequence without involving //three consecutive numbers int maxSumWO3Consec(int arr[], int n) { int sum[n]; if (n >= 1) sum[0] = arr[0]; if (n >= 2) sum[1] = arr[0] + arr[1]; if (n > 2) sum[2] = max(sum[1], max(arr[1] + arr[2], arr[0] + arr[2])); for (int i = 3; i < n; i++) sum[i] = max(max(sum[i - 1], sum[i - 2] + arr[i]), arr[i] + arr[i - 1] + sum[i - 3]); return sum[n - 1]; } int main() { int arr[] = { 100, 1000 }; int n = sizeof(arr) / sizeof(arr[0]); cout << maxSumWO3Consec(arr, n); return 0; }
আউটপুট
1100