public class Solution {
    public int FindGreatestSumOfSubArray(int[] array) {
        int[][] dp = new int[array.length][array.length];
        int sum = 0;
        for(int i=0; i<array.length; i++){
            sum = sum+array[i];
            dp[0][i] = sum;
            dp[i][i] = array[i];
        }
        for(int i=1; i<array.length; i++){
            for(int j=i+1; j<array.length; j++){
                dp[i][j] = array[j]+dp[i][j-1];
            }
        }
        int max = dp[0][0];
        for(int i=0; i<array.length; i++){
            for(int j=i; j<array.length; j++){
                max = Math.max(max,dp[i][j]);
            }
        }
        return max;
    }
}