max subarray sum achievable out of 'k' subarrys
/**
* MaxSubarraySum
*/
import java.util.*;
//THE MAX SUBARRAY SUM ACHIEVABLE OUT OF 'K' SUBARRAYS FORMED MUST BE THE MIN POSSIBLE
public class MaxSubarraySum {
public static int ans = Integer.MAX_VALUE;
public static void solve(int arr[], int n, int k, int index, int maxsum, int sum) {
if (k == 1) {
maxsum = Math.max(maxsum, sum);
sum = 0;
for (int i = index; i < n; i++) {
sum += arr[i];
}
maxsum = Math.max(maxsum, sum);
ans = Math.min(maxsum, ans);
return;
}
sum = 0;
for (int i = index; i < n; i++) {
sum += arr[i];
maxsum = Math.max(maxsum, sum);
solve(arr, n, k - 1, i + 1, maxsum, sum);
}
}
public static void main(String[] args) {
System.out.println("Enter size of array:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int arr[] = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
System.out.println("Enter k:");
int k = sc.nextInt();
solve(arr, n, k, 0, 0, 0);
System.out.println(ans);
}
}
Comments
Post a Comment