इस ट्यूटोरियल में, हम विभाज्यता की स्थिति के तहत कूद के साथ प्रत्येक स्थिति के लिए अधिकतम पथ योग खोजने के लिए एक कार्यक्रम पर चर्चा करेंगे
इसके लिए हमें n यादृच्छिक पूर्णांकों की एक सरणी प्रदान की जाएगी। हमारा कार्य एक स्थान से दूसरे स्थान पर कूदना है यदि यह इसे विभाजित करता है और अंत में प्रत्येक दिए गए स्थान के लिए अधिकतम योग पथ प्रदान करता है।
उदाहरण
#include <bits/stdc++.h> using namespace std; //finding maximum sum path void printMaxSum(int arr[], int n) { int dp[n]; memset(dp, 0, sizeof dp); for (int i = 0; i < n; i++) { dp[i] = arr[i]; int maxi = 0; for (int j = 1; j <= sqrt(i + 1); j++) { if (((i + 1) % j == 0) && (i + 1) != j) { if (dp[j - 1] > maxi) maxi = dp[j - 1]; if (dp[(i + 1) / j - 1] > maxi && j != 1) maxi = dp[(i + 1) / j - 1]; } } dp[i] += maxi; } for (int i = 0; i < n; i++) cout << dp[i] << " "; } int main() { int arr[] = { 2, 3, 1, 4, 6, 5 }; int n = sizeof(arr) / sizeof(arr[0]); printMaxSum(arr, n); return 0; }
आउटपुट
2 5 3 9 8 10